Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as DB user with CREATE TABLE privilege
-
DeliveryCreate table with malicious SQL in a column identifier
-
ExploitWait for superuser to call k-anonymity function
-
ExecutionInjected code executes with superuser privileges
-
ImpactAttain full superuser control of database
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must hold an authenticated database account with CREATE TABLE privilege (PR:L). On PostgreSQL 14, or instances upgraded from PostgreSQL 14 or earlier, any user can create tables on the public schema by default, so this is readily met; on PostgreSQL 15 and later the CREATE permission on public is revoked by default, so exploitation requires a user who was explicitly granted CREATE TABLE. The attacker creates a table whose column identifier contains malicious SQL. Crucially, the code does not execute on its own - it fires only when a superuser invokes the k-anonymity function against the attacker-controlled object. Limiting factors: authenticated low-privilege access is required, a separate superuser action (calling k-anonymity) is the trigger and is outside the attacker's direct control, and PostgreSQL 15+ default schema hardening blocks table creation for unprivileged users. |
| Impact | Signals diverge sharply. The CVSS base score of 8.8 (High) reflects total technical impact - the SSVC framework also rates Technical Impact as 'total', consistent with code execution at superuser level (C:H/I:H/A:H). The CVSS vector is AV:N with PR:L, so this is an authenticated attack (a low-privileged database user), not an unauthenticated one. Against that severity, the exploitation-likelihood signals are weak: EPSS is 0.04% (12th percentile), SSVC Exploitation is 'none', SSVC Automatable is 'no', and the vulnerability is not in CISA KEV. The vuln.today decision label is 'this_week' rather than act_now/emergency. The key limiter is that exploitation is not self-contained: the attacker plants malicious code in a column identifier, but the payload only fires when a superuser separately invokes the k-anonymity function - an attacker-uncontrolled trigger that explains Automatable:no and the low EPSS. On PostgreSQL 15+, default revocation of CREATE on the public schema further narrows the attacker population to users explicitly granted CREATE TABLE. Net: a genuinely serious privilege-escalation bug worth patching this week, but not a widespread/automatable mass-exploitation threat - prioritize it on instances running PostgreSQL 14 or upgraded from 14-or-earlier where any non-trusted role can create tables. |
| Exploit ScenarioDerived | A low-privileged database user who can create a table embeds SQL code inside a column identifier of a table they own. Later, when a superuser runs the extension's k-anonymity function against that object, the embedded code executes with superuser privileges, giving the attacker full control of the database. No public exploit was identified at time of analysis; the only reference is the vendor's GitLab issue tracker. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Oct 26, 2026
Privilege escalation in PostgreSQL Anonymizer before 3.1.0 allows an authenticated database user with CREATE TABLE rights to embed SQL in a column identifier, which then runs with superuser privileges when a superuser calls the k-anonymity function on the malicious table. PostgreSQL 14 and instances upgraded from PostgreSQL 14 or earlier are most exposed because ordinary users can create tables in the public schema by default, while PostgreSQL 15 and later require an explicit CREATE TABLE grant. Signals diverge sharply: CVSS is 8.8 with total technical impact, but EPSS is 0.04% (12th percentile), SSVC exploitation is none, and no public exploit or CISA KEV entry was identified at time of analysis.
Earlier versions of this analysis (1)
Privilege escalation in PostgreSQL Anonymizer (all versions prior to 3.1.0) allows an authenticated database user to gain superuser privileges by embedding malicious SQL code within a column identifier of a user-created table. When a superuser invokes the k-anonymity function against such a table, the injected code executes with superuser-level privileges, yielding full confidentiality, integrity, and availability impact across the database. No active exploitation has been confirmed (not in CISA KEV) and no public exploit code has been identified at time of analysis, though SSVC rates technical impact as total due to the complete privilege escalation outcome.
RemediationAI
Vendor-released patch: upgrade PostgreSQL Anonymizer to 3.1.0 or later; this is the complete fix and is tracked at https://gitlab.com/dalibo/postgresql_anonymizer/-/issues/640. Until upgraded, revoke CREATE on the public schema from PUBLIC and from any untrusted roles, and verify grants on PostgreSQL 14 and clusters upgraded from 14 or earlier; this blocks the table-creation prerequisite but can break applications that rely on users creating objects in public. Also avoid running k-anonymity against tables owned or created by untrusted users until the patch is applied, at the cost of withholding that feature for those tables.
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 extension for PostgreSQL that provides masking and k-anonymity functions. The vulnerability is CWE-89 SQL injection in the handling of identifiers: a low-privileged user who can create a table supplies a malicious column identifier, and when a superuser invokes the k-anonymity function against that table the injected SQL executes in the superuser's context. The affected range is 1 through 3.0.x (fixed in 3.1.0), with the supplied CPE identifying dalibo:anonymizer 2.5.1 on PostgreSQL. Exposure depends on PostgreSQL's schema permissions: PostgreSQL 14 and clusters upgraded from 14 or earlier allow table creation on public by default, whereas PostgreSQL 15+ revoke CREATE on public by default, so exploitation there requires an explicit CREATE TABLE grant; the exact identifier-handling code path is not detailed in the available sources.
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:N/S:U/C:H/I:H/A:H
Authenticated low-priv user with CREATE TABLE (PR:L) over the network (AV:N); injected code runs as superuser giving full C/I/A, matching the vendor vector.
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
4DescriptionNVD
PostgreSQL Anonymizer contains a vulnerability that allows a user to gain superuser privileges by creating a table and placing malicious code inside a column identifier. If a superuser calls the k-anonymity function, the malicious code is executed with superuser privileges. The risk is higher with PostgreSQL 14 or with instances upgraded from PostgreSQL 14 or a prior version. With PostgreSQL 15 and later, the creation permission on the public schema is revoked by default and this exploit can only be achieved by a user who was explicitly granted the CREATE TABLE privilege. The problem is resolved in PostgreSQL Anonymizer 3.1.0 and further versions
Executive ViewAI
The PostgreSQL Anonymizer extension prior to version 3.1.0 contains a privilege escalation flaw (CVE-2026-9617, CVSS 8.8) that allows an authenticated user with CREATE TABLE rights to execute SQL with superuser privileges when a superuser invokes the k-anonymity function on a malicious table. The primary risk is privilege escalation and potential full database compromise, which could affect data confidentiality and integrity. Leadership should care because the vulnerability enables attackers to bypass database security controls, and while exploitation has not been observed, the technical impact is high and many databases may be exposed.
Apply vendor patch. If patching is delayed, revoke CREATE TABLE privileges from non-superuser roles, especially in the public schema, and restrict execution of the k-anonymity function to trusted superusers only.
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
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
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-32504
GHSA-2qfw-46cx-cgv6
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB