2026-10-02 20:35CVE-2026-104055canonical
PUBLISHED5.2CWE-532

Monitoring-user password logged in cleartext by postgres_exporter in postgresql VM charm

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).

Problem type

Affected products

Canonical

postgresql-operator

< 1189 - AFFECTED

< 1190 - AFFECTED

< 1216 - AFFECTED

< 1217 - AFFECTED

References

GitHub Security Advisories

GHSA-3533-w4pf-7x2r

The postgresql-operator charm runs a Prometheus postgres_exporter to collect database metrics...

https://github.com/advisories/GHSA-3533-w4pf-7x2r

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).

JSON source

https://cveawg.mitre.org/api/cve/CVE-2026-104055
Click to expand
{
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "cveMetadata": {
    "cveId": "CVE-2026-104055",
    "assignerOrgId": "cc1ad9ee-3454-478d-9317-d3e869d708bc",
    "assignerShortName": "canonical",
    "dateUpdated": "2026-10-02T20:35:50.514Z",
    "dateReserved": "2026-10-01T18:01:17.865Z",
    "datePublished": "2026-10-02T20:35:50.514Z",
    "state": "PUBLISHED"
  },
  "containers": {
    "cna": {
      "providerMetadata": {
        "orgId": "cc1ad9ee-3454-478d-9317-d3e869d708bc",
        "shortName": "canonical",
        "dateUpdated": "2026-10-02T20:35:50.514Z"
      },
      "title": "Monitoring-user password logged in cleartext by postgres_exporter in postgresql VM charm",
      "descriptions": [
        {
          "lang": "en",
          "value": "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)."
        }
      ],
      "affected": [
        {
          "vendor": "Canonical",
          "product": "postgresql-operator",
          "collectionURL": "https://charmhub.io/postgresql",
          "packageName": "charmed-postgresql",
          "platforms": [
            "Linux"
          ],
          "repo": "https://github.com/canonical/postgresql-operator",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "0",
              "status": "affected",
              "versionType": "charm-revision",
              "lessThan": "1189"
            },
            {
              "version": "0",
              "status": "affected",
              "versionType": "charm-revision",
              "lessThan": "1190"
            },
            {
              "version": "0",
              "status": "affected",
              "versionType": "charm-revision",
              "lessThan": "1216"
            },
            {
              "version": "0",
              "status": "affected",
              "versionType": "charm-revision",
              "lessThan": "1217"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "lang": "en",
              "description": "CWE-532 Insertion of sensitive information into log file",
              "cweId": "CWE-532",
              "type": "CWE"
            }
          ]
        }
      ],
      "references": [
        {
          "url": "https://github.com/canonical/postgresql-operator/security/advisories/GHSA-rcx7-7rh5-r542",
          "tags": [
            "vendor-advisory"
          ]
        },
        {
          "url": "https://github.com/canonical/postgresql-operator/pull/1863",
          "tags": [
            "patch"
          ]
        },
        {
          "url": "https://github.com/canonical/charmed-postgresql-snap/pull/305",
          "tags": [
            "patch"
          ]
        },
        {
          "url": "https://github.com/canonical/charmed-postgresql-snap/pull/307",
          "tags": [
            "patch"
          ]
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-37",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-37 Retrieve Embedded Sensitive Data"
            }
          ]
        }
      ],
      "metrics": [
        {
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "value": "Allan Vidal",
          "type": "reporter"
        }
      ]
    }
  }
}