Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege PostgreSQL user
-
ExploitQuery pg_roles or pg_db_role_setting catalog
-
ExecutionRead exposed anonymizer salt and shift
-
ImpactReverse pseudonymized/masked data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated PostgreSQL account (PR:L) on a server where the PostgreSQL Anonymizer salt and/or shift were configured at the database or role level via ALTER DATABASE or ALTER ROLE - the method the extension's own documentation recommends. The flaw is only reachable for a user who is NOT a member of pg_read_all_settings (members can already see these values through SHOW); for such a user the secrets nonetheless remain readable in the pg_db_role_setting or pg_roles catalog views. Limiting factors: the attacker must already hold valid database credentials, and no disclosure occurs if the salt was never set at the database/user level via those ALTER statements. Prior to version 3.3.0 the extension does not restrict these catalog-visible values. |
| Impact | This is a medium-severity information-disclosure issue (CVE-2026-105616, CVSS 5.7) in Dalibo's PostgreSQL Anonymizer extension, and the real-world signals point to a low-to-moderate, not emergency, priority. The vendor-supplied vector (AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N) indicates a network-reachable but authenticated (PR:L) flaw whose only impact is confidentiality (C:H) - specifically exposure of the anonymization salt/shift secrets. KEV status is NO (not confirmed actively exploited), no EPSS score was provided, and there is no public exploit identified at time of analysis - the sole reference is a GitLab issue tracker entry, not working exploit code. The vuln.today decision label is 'this_month', consistent with a real but non-urgent fix window rather than act_now/emergency. One signal conflict worth flagging: the input vector sets UI:R (user interaction required), yet the described mechanism - a logged-in user directly querying pg_roles or pg_db_role_setting - needs no second-party interaction, so UI:R appears overstated; verify with the vendor. The C:H rating is defensible only because disclosure of the salt can undermine the entire pseudonymization scheme (allowing reversal of masked data), not because any primary database contents leak directly. |
| Exploit ScenarioDerived | A low-privileged but authenticated PostgreSQL user who is NOT a member of pg_read_all_settings - and is therefore blocked from seeing the salt via SHOW - instead queries the pg_roles or pg_db_role_setting catalog views and reads the anonymization salt and shift that an administrator set using ALTER DATABASE or ALTER ROLE (the configuration method the PostgreSQL Anonymizer documentation recommends). With the salt recovered, the attacker can attempt to reverse pseudonymized/masked values. No public exploit code was identified; the attack is a straightforward catalog query requiring only database login. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
PostgreSQL Anonymizer before 3.3.0 can disclose the anonymization salt and shift values to an authenticated database user who is not a member of pg_read_all_settings, because values configured at the database or role level remain readable in the pg_db_role_setting and pg_roles catalogs even though PostgreSQL restricts them through SHOW. The exposure is conditional: the attacker must already hold valid database credentials, and the salt or shift must have been set with ALTER DATABASE or ALTER ROLE, the method the extension documentation recommends. The issue is rated CVSS 5.7 (medium), with a this_month priority label; no public exploit identified at time of analysis, and the supplied data does not indicate CISA KEV listing. Dalibo resolved it in PostgreSQL Anonymizer 3.3.0.
RemediationAI
Upgrade to PostgreSQL Anonymizer 3.3.0 or later, the version that resolves the catalog exposure (https://gitlab.com/dalibo/postgresql_anonymizer/-/issues/694). The available data identifies no vendor-documented workaround; where upgrade is delayed, deployments should determine whether the salt or shift is set through ALTER DATABASE or ALTER ROLE, because that is the condition under which authenticated users outside pg_read_all_settings can read the values from pg_db_role_setting or pg_roles. Removing those database/role-level settings would avoid this specific exposure but may break the extension's documented configuration and should be tested; limiting database accounts to trusted users reduces exposure but does not remove the catalog visibility. No fixed version earlier than 3.3.0 is identified.
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
PostgreSQL Anonymizer is a PostgreSQL extension from Dalibo that provides anonymization capabilities; its salt and shift values are sensitive configuration secrets. The root cause is CWE-200 exposure of sensitive information: PostgreSQL's SHOW command is intended to restrict these values to users who are members of pg_read_all_settings, but when the extension's documentation-recommended ALTER DATABASE or ALTER ROLE method is used, the values are persisted in the pg_db_role_setting catalog and can also be visible in pg_roles. A user with a valid database account who is not a member of pg_read_all_settings can therefore read the secrets through catalog queries, bypassing the SHOW restriction. Before 3.3.0 the extension does not restrict these catalog-visible values; the CPE cpe:2.3:a:dalibo:postgresql_anonymizer:*:*:*:*:*:*:*:* covers affected releases. The evidence does not describe a memory-corruption or code-execution mechanism; this is a configuration and catalog-visibility flaw.
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
AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N
Authenticated DB user (PR:L) reads catalog views remotely with no second-party interaction, so UI:N (vendor's UI:R seems unjustified); impact is salt-secret disclosure only, C:H/I:N/A:N.
Primary rating from Vendor (PostgreSQL).
CVSS VectorVendor: PostgreSQL
Lifecycle Timeline
1DescriptionCVE.org
PostgreSQL restricts acces to the salt and shift via the SHOW command for users not member of pg_read_all_settings. But they are visible in pg_db_role_setting or pg_roles if they were set on the database, user or both. PostgreSQL Anonymizer's documentation recommends to use ALTER DATABASE / ALTER ROLE for the salt. The problem is resolved in PostgreSQL Anonymizer 3.3.0 and later versions.
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-112288
GHSA-ccch-g55g-pm23
NVD
CVE.org
Exploit-DB