Cloudanix VulnDB

CVE-2024-3019

High · 8.8

CVSS

8.8

EPSS

1.0%

Published

Mar 28, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A monitoring tool can accidentally let computers on the same network run commands on the system if its optional proxy service is turned on, risking unauthorized access.

Exploitation
Adjacent Network
Attacker needs
None
Complexity
Low
Impact
Remote Code Execution
Component
Application
Class
Misconfiguration
Remediation
Config Change
Effort
Low
Patch risk
None

What it actually does

Default pmproxy configuration binds the Redis backend to the local network interface, permitting unauthenticated adjacent-network attackers to issue Redis commands and achieve remote code execution under the Redis service account when the pmproxy service is active.

Why it matters to the business

If the metrics proxy service is manually enabled, attackers on the same network segment can gain unauthorized control of affected hosts, potentially leading to data exfiltration, persistence, or lateral movement; the issue is limited to non-default configurations but affects all PCP 4.3.4 and newer deployments that start pmproxy.

How an attack unfolds

An attacker on the same network segment discovers a host running pmproxy, connects directly to the exposed Redis listener, and abuses Redis features such as module loading or Lua scripting to execute arbitrary commands with the privileges of the Redis user.

How to fix it

Disable pmproxy unless metrics proxying is required; otherwise bind Redis and pmproxy exclusively to localhost or trusted interfaces, enforce network segmentation with host firewalls, and apply any vendor configuration hardening for PCP versions 4.3.4 and newer.

How to confirm the fix worked

Review pmproxy and Redis configuration files for bind addresses, use network scanners to confirm no external exposure on Redis ports, and verify that pmproxy is not running unless explicitly needed via system service status checks.

Typical attack path

  1. Scan adjacent network for hosts listening on pmproxy/Redis ports
  2. Establish unauthenticated TCP connection to the exposed Redis backend
  3. Issue Redis commands to load malicious modules or execute system commands
  4. Escalate or persist using the resulting shell under the Redis account

How to detect it

Inspect pmproxy and Redis logs for unexpected remote connections, review service startup history for manual activation of pmproxy, and correlate network flow data showing traffic to Redis ports from non-local addresses.

  • pmproxy listening on non-loopback addresses
  • Redis TCP connections from adjacent-network hosts
  • Unexpected Redis MODULE LOAD or EVAL commands in redis.log

What your security team should do

  • Immediately audit all systems for running pmproxy instances and disable where metrics proxying is unnecessary
  • Implement host-based firewall rules restricting Redis and pmproxy ports to localhost or approved management subnets
  • Add configuration review of PCP components to standard hardening baselines
  • Monitor for any future vendor patches addressing the default exposure

The record

A flaw was found in PCP. The default pmproxy configuration exposes the Redis server backend to the local network, allowing remote command execution with the privileges of the Redis user. This issue can only be exploited when pmproxy is running. By default, pmproxy is not running and needs to be started manually. The pmproxy service is usually started from the 'Metrics settings' page of the Cockpit web interface. This flaw affects PCP versions 4.3.4 and newer.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:8 pcp 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-conf 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-devel 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-doc 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-export-pcp2elasticsearch 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-export-pcp2graphite 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-export-pcp2influxdb 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-export-pcp2json 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-export-pcp2spark 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-export-pcp2xml 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-export-pcp2zabbix 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-export-zabbix-agent 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-gui 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-import-collectl2pcp 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-import-ganglia2pcp 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-import-iostat2pcp 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-import-mrtg2pcp 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-import-sar2pcp 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-libs 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-libs-devel 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-activemq 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-apache 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-bash 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-bcc 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-bind2 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-bonding 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-bpftrace 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-cifs 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-cisco 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-dbping 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-denki 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-dm 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-docker 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-ds389 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-ds389log 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-elasticsearch 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-gfs2 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-gluster 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-gpfs 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-gpsd 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-hacluster 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-haproxy 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-infiniband 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-json 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-libvirt 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-lio 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-lmsensors 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-logger 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-lustre 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-lustrecomm 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-mailq 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-memcache 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-mic 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-mongodb 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-mounts 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-mssql 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-mysql 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-named 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-netcheck 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-netfilter 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-news 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-nfsclient 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-nginx 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-nvidia-gpu 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-openmetrics 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-openvswitch 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-oracle 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-pdns 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-perfevent 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-podman 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-postfix 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-postgresql 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-rabbitmq 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-redis 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-roomtemp 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-rsyslog 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-samba 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-sendmail 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-shping 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-slurm 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-smart 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-snmp 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-sockets 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-statsd 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-summary 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-systemd 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-trace 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-unbound 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-weblog 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-zimbra 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-pmda-zswap 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-selinux 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-system-tools 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-testsuite 0 5.3.7-20.el8_10
AlmaLinux:8 pcp-zeroconf 0 5.3.7-20.el8_10
AlmaLinux:8 perl-PCP-LogImport 0 5.3.7-20.el8_10
AlmaLinux:8 perl-PCP-LogSummary 0 5.3.7-20.el8_10
AlmaLinux:8 perl-PCP-MMV 0 5.3.7-20.el8_10
AlmaLinux:8 perl-PCP-PMDA 0 5.3.7-20.el8_10
AlmaLinux:8 python3-pcp 0 5.3.7-20.el8_10
AlmaLinux:9 pcp 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-conf 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-devel 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-doc 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-export-pcp2elasticsearch 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-export-pcp2graphite 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-export-pcp2influxdb 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-export-pcp2json 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-export-pcp2spark 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-export-pcp2xml 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-export-pcp2zabbix 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-export-zabbix-agent 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-geolocate 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-gui 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-import-collectl2pcp 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-import-ganglia2pcp 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-import-iostat2pcp 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-import-mrtg2pcp 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-import-sar2pcp 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-libs 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-libs-devel 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-activemq 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-apache 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-bash 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-bcc 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-bind2 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-bonding 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-bpf 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-bpftrace 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-cifs 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-cisco 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-dbping 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-denki 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-dm 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-docker 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-ds389 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-ds389log 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-elasticsearch 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-farm 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-gfs2 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-gluster 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-gpfs 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-gpsd 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-hacluster 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-haproxy 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-infiniband 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-json 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-libvirt 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-lio 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-lmsensors 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-logger 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-lustre 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-lustrecomm 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-mailq 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-memcache 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-mic 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-mongodb 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-mounts 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-mssql 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-mysql 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-named 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-netcheck 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-netfilter 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-news 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-nfsclient 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-nginx 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-nvidia-gpu 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-openmetrics 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-openvswitch 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-oracle 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-pdns 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-perfevent 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-podman 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-postfix 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-postgresql 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-rabbitmq 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-redis 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-resctrl 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-roomtemp 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-rsyslog 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-samba 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-sendmail 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-shping 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-slurm 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-smart 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-snmp 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-sockets 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-statsd 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-summary 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-systemd 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-trace 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-unbound 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-weblog 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-zimbra 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-pmda-zswap 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-selinux 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-system-tools 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-testsuite 0 6.2.0-2.el9_4
AlmaLinux:9 pcp-zeroconf 0 6.2.0-2.el9_4
AlmaLinux:9 perl-PCP-LogImport 0 6.2.0-2.el9_4

Related vulnerabilities