Cloudanix VulnDB

CVE-2023-6917

Medium · 6.0

CVSS

6.0

EPSS

0.2%

Published

Feb 28, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A flaw in how performance monitoring software runs its background services lets someone with limited access gain full control of the computer.

Exploitation
Local Privilege
Attacker needs
High Privilege
Complexity
Low
Impact
Full Compromise
Component
Application
Class
Race Condition
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Mixed privilege levels in PCP systemd services allow root-owned processes to traverse directories owned by the unprivileged PCP user, enabling symlink attacks that break intended isolation and permit local privilege escalation to root.

Why it matters to the business

Attackers who already have limited access on affected systems can obtain full administrative control, resulting in complete compromise of monitoring and performance data collection infrastructure with high urgency for patching given the long exposure window.

How an attack unfolds

An attacker with access to the PCP user account creates malicious symlinks pointing to sensitive root-owned paths inside PCP-controlled directories; when a root-privileged PCP service processes those directories it follows the symlink, allowing the attacker to overwrite or read arbitrary files and escalate to root.

How to fix it

Upgrade PCP packages to versions that enforce consistent non-root service execution and proper privilege separation; the referenced fix commit 44f28df24767cf9dca1ddc9b23157737c4cbb645 addresses the underlying service configuration issues.

How to confirm the fix worked

Verify that all PCP-related systemd units run under the dedicated PCP user/group rather than root, confirm absence of world-writable directories under PCP ownership, and test that symlink creation by the PCP user no longer affects root-owned paths.

Typical attack path

  1. Obtain PCP user or group access on the target system
  2. Create symlink(s) inside PCP-owned directories pointing to root-accessible resources
  3. Trigger or wait for a root-privileged PCP systemd service to traverse the directory
  4. Exploit the resulting file operation to read/write arbitrary files or escalate privileges

How to detect it

Review system logs for PCP service startups or directory traversals performed by root processes, inspect for unexpected symlinks created under PCP user ownership, and correlate with authentication or process creation events showing privilege transitions from the PCP account.

What your security team should do

  • Immediately apply the fixed PCP package versions across all affected systems
  • Audit systemd unit files for PCP services to ensure they drop privileges correctly
  • Monitor for any remaining PCP processes running as root and remediate configuration drift
  • Review file permissions on PCP directories to prevent symlink or TOCTOU abuse

The record

A vulnerability has been identified in the Performance Co-Pilot (PCP) package, stemming from the mixed privilege levels utilized by systemd services associated with PCP. While certain services operate within the confines of limited PCP user/group privileges, others are granted full root privileges. This disparity in privilege levels poses a risk when privileged root processes interact with directories or directory trees owned by unprivileged PCP users. Specifically, this vulnerability may lead to the compromise of PCP user isolation and facilitate local PCP-to-root exploits, particularly through symlink attacks. These vulnerabilities underscore the importance of maintaining robust privilege separation mechanisms within PCP to mitigate the potential for unauthorized privilege escalation.

Affected packages

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

Related vulnerabilities