Home

Description

CloudNativePG is a platform designed to manage PostgreSQL databases within Kubernetes environments. Prior to 1.29.1 and 1.28.3, the CloudNativePG metrics exporter opens its PostgreSQL connection as the postgres superuser via the pod-local Unix socket, then demotes the session with SET ROLE pg_monitor. SET ROLE changes only current_user; session_user remains postgres. Any SQL expression evaluated inside the scrape session can invoke RESET ROLE to recover real superuser privileges, then use COPY ... TO PROGRAM to spawn an OS-level subprocess as the postgres user inside the primary pod. The READ ONLY transaction flag does not block this; it gates writes to database state, not external processes. This vulnerability is fixed in 1.29.1 and 1.28.3.

PUBLISHED Reserved 2026-05-06 | Published 2026-05-28 | Updated 2026-05-28 | Assigner GitHub_M




CRITICAL: 9.4CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Problem types

CWE-250: Execution with Unnecessary Privileges

CWE-271: Privilege Dropping / Lowering Errors

CWE-426: Untrusted Search Path

Product status

< 1.28.3
affected

>= 1.29.0, < 1.29.1
affected

References

github.com/...ive-pg/security/advisories/GHSA-423p-g724-fr39

github.com/cloudnative-pg/cloudnative-pg/pull/10576

cve.org (CVE-2026-44477)

nvd.nist.gov (CVE-2026-44477)

Download JSON