Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain read access to exporter logs
-
ExploitTrigger or await DB connection error
-
ExecutionRecover cleartext monitoring password
-
ImpactAuthenticate to PostgreSQL for pg_monitor read access
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A09:2025 - Security Logging & Alerting Failures
ASVS 5.0
V16 - Security Logging and Error Handling Log data sanitization
|
| Exploitation Conditions | Two concrete conditions must both hold: (1) the attacker must be able to read the Prometheus postgres_exporter's logs for the postgresql-operator charm - e.g., access to the Juju unit/container, the log files, or a downstream log-aggregation/observability system that ingests them; and (2) a database connection error must have occurred, because the exporter only writes the monitoring user's password in cleartext on connection failure (so under normal error-free operation the secret is not exposed). Limiting factors: exploitation yields only the 'monitoring' user credential, which maps to read-only pg_monitor access (no write, no admin, no RCE); it affects only charm revisions prior to 1189/1190 (dev track 14/edge) and 1216/1217 (stable track 14/stable); and it is bounded to Charmed PostgreSQL deployments using the operator charm with the exporter enabled. |
| Impact | This is a genuine but modest-severity information-disclosure flaw (CWE-532), not a high-urgency priority. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) scores 5.3 (Medium) with only low confidentiality impact (VC:L) and no integrity or availability impact - consistent with the description, which limits the payoff to recovering a 'monitoring' user password that grants only read-only pg_monitor access. No EPSS score was provided, the CVE is not listed in CISA KEV, and no public exploit code was supplied, so exploitation status is 'no public exploit identified at time of analysis.' A key nuance: the CVSS marks AV:N, but exploitation realistically requires the ability to READ the postgres_exporter's logs, which is itself a privileged/positioned capability rather than anonymous network reach - the PR:L metric partially captures this, but defenders should treat the true attack surface as 'anyone with log read access' (log aggregation operators, co-located processes, or anyone who can reach shipped logs) rather than any unauthenticated internet attacker. The payoff is bounded: pg_monitor is read-only, so there is no direct path to data modification or RCE from this flaw alone. Overall this is a legitimate hardening fix worth patching in affected Charmed PostgreSQL deployments, but not a drop-everything emergency. |
| Exploit ScenarioDerived | An operator or attacker with access to the postgresql-operator charm's logs (directly on the unit, or via a centralized logging/observability pipeline) waits for or induces a database connection error, which causes the postgres_exporter to write the monitoring user's password in cleartext to the log. They copy the password and authenticate to PostgreSQL as the monitoring user, obtaining read-only pg_monitor visibility into database metrics and statistics. No public exploit code is required - recovery is a trivial log grep once the error has been logged. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 02, 2026
Cleartext logging of the monitoring user's password in Canonical's postgresql-operator charm allows an attacker with read access to the Prometheus postgres_exporter logs to recover credentials granting read-only pg_monitor access to PostgreSQL. The flaw (CWE-532) affects charm revisions prior to 1189/1190 on the 14/edge track and prior to 1216/1217 on the 14/stable track, and exploitation additionally requires that a database connection error has occurred so the password is written to logs. This is a modest-severity information-disclosure issue (CVSS 5.3, PR:L) with no public exploit identified at time of analysis, fixed in the specified revisions via upstream patches.
RemediationAI
Upgrade to the fixed revisions: on the 14/edge track use revision 1189 (arm64) or 1190 (amd64); on the 14/stable track use revision 1216 (arm64) or 1217 (amd64). Apply the update via Juju refresh with the appropriate channel and revision, or rebuild from the patched snap PRs (canonical/charmed-postgresql-snap#305 and #307) and the operator PR (canonical/postgresql-operator#1863). If immediate patching is not possible, restrict access to the postgres_exporter logs: limit Juju unit and container access, secure any downstream log-aggregation/observability systems that ingest these logs, and avoid forwarding exporter logs to shared or broadly accessible storage. Because the leak only occurs on database connection errors, monitor for and promptly resolve connection issues to reduce the window of exposure. After patching, rotate the monitoring user's password if logs may have been exposed, and note that the credential grants only read-only pg_monitor access, so impact is limited. See the advisory at https://github.com/canonical/postgresql-operator/security/advisories/GHSA-rcx7-7rh5-r542.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The postgresql-operator charm deploys a Prometheus postgres_exporter to collect database metrics using a dedicated 'monitoring' PostgreSQL user. The exporter is configured with connection details that include the monitoring user's password; when a database connection error occurs, the exporter logs the full connection string, which contains the cleartext password, to its logs. This is an instance of CWE-532 (Insertion of Sensitive Information into Log File). The root cause is that the password is embedded in the DATA_SOURCE_NAME environment variable rather than being passed separately, so error-handling routines that log the connection string inadvertently disclose the secret. The fix (PRs canonical/postgresql-operator#1863, canonical/charmed-postgresql-snap#305, canonical/charmed-postgresql-snap#307) changes the exporter to use DATA_SOURCE_URI and separate DATA_SOURCE_USER/DATA_SOURCE_PASS variables, preventing the password from appearing in logged connection strings. Affected products are identified by CPE cpe:2.3:a:canonical:postgresql-operator:*:*:*:*:*:*:*:* and EUVD lists affected versions as postgresql-operator 0 <1189, 0 <1216, 0 <1190, 0 <1217.
Know when PostgreSQL gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Reading the exporter logs requires some authenticated/positioned access so PR:L; only a read-only monitoring password is disclosed giving C:L with no integrity or availability impact.
Primary rating from Vendor (canonical).
CVSS VectorVendor: canonical
DescriptionCVE.org
The postgresql-operator charm runs a Prometheus postgres_exporter to collect database metrics using a dedicated "monitoring" PostgreSQL user. On database connection errors, the exporter writes the monitoring user's password in cleartext to its logs. Any actor able to read those logs can recover the password, which grants read-only pg_monitor access to PostgreSQL. This is fixed in the dev track (14/edge) in revisions 1189 (arm64) and 1190 (amd64), and in the stable track (14/stable) in revisions 1216 (arm64) and 1217 (amd64).
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in PostgreSQL
View allPostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() improperl
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
Argument injection vulnerability in PostgreSQL 9.2.x before 9.2.4, 9.1.x before 9.1.9, and 9.0.x before 9.0.13 allows re
Unauthenticated arbitrary file write in Splunk Enterprise (below 10.2.4 and 10.0.7) and Splunk Cloud Platform (below 10.
Unauthenticated SQL injection in Sangoma Switchvox SMB Edition 8.3 (build 104997) lets remote attackers execute arbitrar
PostgreSQL versions before 9.2.22, 9.3.18, 9.4.13, 9.5.8 and 9.6.4 are vulnerable to incorrect authentication flaw allow
The build_tablename function in pgsql.c in the PostgreSQL (aka pgsql) extension in PHP through 5.6.7 does not validate t
A vulnerability in the h2oai/h2o-3 REST API versions 3.46.0.4 allows unauthenticated remote attackers to execute arbitra
In PostgreSQL 9.3 through 11.2, the "COPY TO/FROM PROGRAM" function allows superusers and users in the 'pg_execute_serve
Unauthenticated SQL injection in Vendure Shop API allows remote attackers to execute arbitrary SQL commands against the
Parse Server is an open source http web server backend. Rated critical severity (CVSS 10.0), this vulnerability is remot
Hard-coded default PostgreSQL credentials shipped in the docker-compose.yaml of langgenius Dify through version 1.5.1 al
EUVD-2026-91803
GHSA-3533-w4pf-7x2r
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB