Skip to main content

PostgreSQL Anonymizer EUVDEUVD-2026-112294

| CVE-2026-110181 MEDIUM
Protection Mechanism Failure (CWE-693)
2026-10-28 PostgreSQL GHSA-w66q-cxj5-99hv
6.5
CVSS 3.1 · Vendor: PostgreSQL
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as DB role with TEMPORARY privilege
  2. Exploit
    Define anonymization function with SQL-standard body
  3. Execution
    Function bound at declaration, evading Anonymizer checks
  4. Impact
    Retrieve unmasked sensitive data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Protection mechanism completeness
Exploitation Conditions

Exploitation requires an authenticated PostgreSQL role that holds the TEMPORARY privilege on a deployment using the PostgreSQL Anonymizer extension for dynamic masking. The specific trigger is defining an anonymization function with a SQL-standard function body: PostgreSQL analyses (binds) such bodies at declaration time whereas Anonymizer only attempts its safety check at execution time, so the function bypasses Anonymizer's validation. Limiting factors: the attacker must already possess a database account with TEMPORARY privilege (not anonymous access), and only environments running Anonymizer versions prior to 3.3.0 are affected; the vendor fix in 3.3.0 and later resolves the mismatch.

Impact

This is a moderate-priority confidentiality flaw, not an emergency. The CVSS 6.5 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N) reflects a network-reachable but authenticated issue: the attacker must already hold a PostgreSQL role with the TEMPORARY privilege, which bounds the population of potential exploiters to existing low-privileged database users rather than anonymous internet attackers. The single H is on confidentiality (bypass of the anonymization/masking protection, consistent with CWE-693 Protection Mechanism Failure), with no integrity or availability impact. Signals are consistent rather than conflicting: the vuln.today decision label is 'this_month' (routine patch-cycle urgency, not act_now/emergency), there is no CISA KEV listing, no EPSS score was supplied, and no public exploit is identified - so there is no evidence of active or widespread exploitation. The gap between a network attack vector and a prerequisite of an existing privileged account is the key nuance: realistic risk is driven by how many semi-trusted users have TEMPORARY privilege on databases that rely on Anonymizer for masking, not by raw CVSS alone.

Exploit ScenarioDerived

A low-privileged but authenticated database user who holds the TEMPORARY privilege defines an anonymization function using a SQL-standard function body. Because PostgreSQL binds such bodies at declaration time while Anonymizer only validates them at execution time, the user's function escapes Anonymizer's safety checks and can be used to read data that should have remained masked. No public exploit is identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

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

Alert me

AnalysisAIv1 – Oct 28, 2026

Confidentiality exposure in PostgreSQL Anonymizer (Dalibo) before 3.3.0 lets an authenticated database role that holds the TEMPORARY privilege defeat the extension's dynamic-masking validation by defining an anonymization function with a SQL-standard function body, so masked data can be read rather than anonymized. Only deployments running the extension in versions prior to 3.3.0 are affected; the mismatch is resolved in 3.3.0 and later. Severity is rated 6.5 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N) with high confidentiality impact but no integrity or availability effect, and no public exploit code or confirmed active exploitation was identified at time of analysis.

RemediationAI

Upgrade PostgreSQL Anonymizer to 3.3.0 or later, which is the vendor-released fix that resolves the declaration-time versus execution-time validation mismatch; the reference at https://gitlab.com/dalibo/postgresql_anonymizer/-/issues/718 should be reviewed for the exact release guidance, and the extension should be updated and the ALTER EXTENSION path applied on each database where it is installed. Because exploitation requires an authenticated role holding the TEMPORARY privilege, tightening who is granted TEMPORARY is a compensating control that reduces exposure on systems that cannot be upgraded immediately, at the cost of breaking legitimate workflows that rely on temporary tables for those roles; note that this limits reachability of the flaw but does not correct the underlying validation bypass. No other workaround is documented in the available sources, so upgrading remains the complete fix.

Affected VersionsENISA

PostgreSQL Anonymizer 1 <3.3.0

Affected Packages

euvd postgresql_anonymizer fix: 3.3.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 that provides dynamic masking and anonymization for PostgreSQL, and it relies on its own checks to confirm that user-defined anonymization functions are safe before they are used to mask data. The flaw is classified as CWE-693 (Protection Mechanism Failure) and stems from a timing mismatch between PostgreSQL's own function handling and the extension's validation: for functions declared with a SQL-standard function body, PostgreSQL analyses (binds) the body at declaration time, whereas Anonymizer only attempts its safety check at execution time. Because the two stages do not align, the validation can be bypassed and the protection mechanism the extension is supposed to enforce is not applied. The affected component is tracked by CPE cpe:2.3:a:dalibo:postgresql_anonymizer, covering all versions prior to the 3.3.0 fix. Exploitation requires an authenticated PostgreSQL role holding the TEMPORARY privilege, which bounds the threat to users who already have a database account with that grant.

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

Vendor (PostgreSQL) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 6.5 MEDIUM

Reachable over the database connection (AV:N, AC:L) but requires an authenticated role with TEMPORARY privilege (PR:L); impact is disclosure of masked data only, so C:H and I:N/A:N.

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

Primary rating from Vendor (PostgreSQL).

CVSS VectorVendor: PostgreSQL

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

Lifecycle Timeline

1
Patch available
Oct 28, 2026 - 18:18 EUVD

DescriptionCVE.org

PostgreSQL Anonymizer contains a vulnerability related to anonymization functions defined using SQL-standard function bodies. PostgreSQL analyses such functions at declaration time, while Anonymizer only attempts to check them at execution time. This problem can be exploited by any user with the TEMPORARY privilege. The issue is fixed in PostgreSQL Anonymizer 3.3.0 and later versions.

Threat Intelligence Overview

Prevalence
Low
niche PostgreSQL masking extension by Dalibo, limited production footprint
Data Quality
3 sources
Confidence: Low

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 MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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