Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain table-owner access to target PostgreSQL database
-
DeliveryEmbed malicious code in anonymization configuration or masking rule
-
ExploitWait for or social-engineer superuser invocation of anon.anonymize_database_parallel()
-
ExecutionPayload executes under superuser privileges
-
ImpactFull database compromise (read/write/admin)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V8 - Authorization Unnecessary privilege execution
|
| Exploitation Conditions | Exploitation requires the attacker to hold table-owner privilege within a PostgreSQL instance where PostgreSQL Anonymizer prior to 3.2.0 is installed and |
| Impact | The vendor-supplied CVSS 3.1 score of 6.4 (AV:N/AC:H/PR:H/UI:R/S:U) reflects tightly constrained exploitation: the attacker must already hold high privileges (PR:H per vendor), attack complexity is high, and user interaction is required - factors that significantly reduce practical exploitability versus the C:H/I:H/A:H impact metrics alone. No EPSS score was provided in the input data, so exploitation probability is not independently quantifiable. The absence of a CISA KEV listing and no public POC further depresses urgency. Scope is marked unchanged (S:U) in the vendor vector, though an argument exists for S:C since escalation from table-owner to superuser crosses a principal trust boundary within the PostgreSQL cluster. Practically, this vulnerability is most dangerous in shared or multi-tenant PostgreSQL environments where untrusted users hold table ownership and an operator periodically invokes parallel anonymization operations - a deployment profile that is not uncommon in analytics or data-staging pipelines. The primary risk signal here is the severity of the outcome (full superuser compromise) rather than ease of exploitation. |
| Exploit ScenarioDerived | A table owner in a shared analytics environment defines a masking rule or anonymization configuration that embeds a malicious payload. When a superuser or privileged operator later invokes |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 06, 2026
Privilege escalation in PostgreSQL Anonymizer (Dalibo) prior to 3.2.0 allows a table owner to execute arbitrary code with full superuser privileges via the anon.anonymize_database_parallel() function. The vulnerability (CWE-250, Execution with Unnecessary Privileges) enables a low-to-high privilege escalation within the database server, granting complete C:H/I:H/A:H impact. No public exploit has been identified and the issue is not listed in CISA KEV; a vendor-released patch is available in version 3.2.0.
RemediationAI
Upgrade PostgreSQL Anonymizer to version 3.2.0 or later, which contains the vendor-released patch (see https://gitlab.com/dalibo/postgresql_anonymizer/-/issues/666). If immediate upgrade is not feasible, the primary compensating control is to revoke EXECUTE privilege on anon.anonymize_database_parallel() from all non-superuser roles using REVOKE EXECUTE ON FUNCTION anon.anonymize_database_parallel() FROM PUBLIC; - this eliminates the attack surface but disables parallel anonymization for table owners, requiring superuser-only invocation. Alternatively, restrict table ownership in shared environments so only trusted roles own tables in schemas where anonymization is applied. Neither workaround addresses the root cause; patching to 3.2.0 is the definitive fix.
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 Dalibo-developed PostgreSQL extension (CPE: cpe:2.3:a:dalibo:postgresql_anonymizer) that provides masking, pseudonymization, and bulk anonymization capabilities for PostgreSQL databases. The anon.anonymize_database_parallel() function invokes parallel worker processes that execute under elevated superuser context rather than the calling user's privilege level. CWE-250 (Execution with Unnecessary Privileges) is the root cause: the function does not adequately restrict what code a table owner can inject into the execution path before it is promoted to superuser. This design allows a table owner - a role that in PostgreSQL can be any authenticated non-superuser who created a table - to craft a payload that is subsequently run with superuser-level database authority.
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:H/PR:H/UI:R/S:U/C:H/I:H/A:H
Table owner is a low-privilege PostgreSQL role (PR:L not PR:H); escalation to superuser crosses a trust boundary warranting S:C; UI:R and AC:H preserved per vendor.
Primary rating from Vendor (PostgreSQL).
CVSS VectorVendor: PostgreSQL
Lifecycle Timeline
1DescriptionCVE.org
PostgreSQL Anonymizer contains a vulnerability in the anon.anonymize_database_parallel() function that allows the owner of a table to run arbitrary code with superuser privilege. The issue is fixed in PostgreSQL Anonymizer 3.2.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
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
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-72143
GHSA-j8qw-c658-vr9r
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB