Skip to main content

PostgreSQL Anonymizer CVE-2026-9617

| EUVDEUVD-2026-32504 HIGH
SQL Injection (CWE-89)
2026-05-27 f86ef6dc-4d3a-42ad-8f28-e6d5547a5007 GHSA-2qfw-46cx-cgv6
8.8
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as DB user with CREATE TABLE privilege
  2. Delivery
    Create table with malicious SQL in a column identifier
  3. Exploit
    Wait for superuser to call k-anonymity function
  4. Execution
    Injected code executes with superuser privileges
  5. Impact
    Attain 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – 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)
v1 May 27, 2026 - 21:18 CVSS 6.8

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

PostgreSQL Anonymizer 1 <3.1.0

Affected Packages

euvd postgresql_anonymizer fix: 3.1.0

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

NVD PRIMARY 8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
Analysis Updated
Oct 26, 2026 - 11:30 vuln.today
v2 - CVSS changed
Severity Changed
Oct 26, 2026 - 11:22 NVD
MEDIUM HIGH
CVSS changed
Oct 26, 2026 - 11:22 NVD
6.8 (MEDIUM) 8.8 (HIGH)
Patch available
May 27, 2026 - 19:46 EUVD

DescriptionNVD

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.0%
Top 88% exploitable
Prevalence
Low
niche PostgreSQL extension for data anonymization, not broadly deployed
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

CVE-2025-1094 HIGH POC
8.1 Feb 13

PostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() improperl

CVE-2024-55964 CRITICAL POC
9.8 Mar 26

An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl

CVE-2013-1899 MEDIUM POC
6.5 Apr 04

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

CVE-2026-20253 CRITICAL POC
9.8 Jun 10

Unauthenticated arbitrary file write in Splunk Enterprise (below 10.2.4 and 10.0.7) and Splunk Cloud Platform (below 10.

CVE-2026-9586 CRITICAL POC
9.3 Jul 17

Unauthenticated SQL injection in Sangoma Switchvox SMB Edition 8.3 (build 104997) lets remote attackers execute arbitrar

CVE-2017-7546 CRITICAL
9.8 Aug 16

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

CVE-2015-1352 MEDIUM POC
5.0 Mar 30

The build_tablename function in pgsql.c in the PostgreSQL (aka pgsql) extension in PHP through 5.6.7 does not validate t

CVE-2024-10553 CRITICAL POC
9.8 Mar 20

A vulnerability in the h2oai/h2o-3 REST API versions 3.46.0.4 allows unauthenticated remote attackers to execute arbitra

CVE-2019-9193 HIGH POC
7.2 Apr 01

In PostgreSQL 9.3 through 11.2, the "COPY TO/FROM PROGRAM" function allows superusers and users in the 'pg_execute_serve

CVE-2026-40887 CRITICAL POC
9.1 Apr 14

Unauthenticated SQL injection in Vendure Shop API allows remote attackers to execute arbitrary SQL commands against the

CVE-2022-24760 CRITICAL POC
10.0 Mar 12

Parse Server is an open source http web server backend. Rated critical severity (CVSS 10.0), this vulnerability is remot

CVE-2025-56157 CRITICAL POC
9.8 Dec 18

Hard-coded default PostgreSQL credentials shipped in the docker-compose.yaml of langgenius Dify through version 1.5.1 al

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy