Skip to main content

PostgreSQL Anonymizer EUVDEUVD-2026-112288

| CVE-2026-105616 MEDIUM
Information Exposure (CWE-200)
2026-10-28 PostgreSQL GHSA-ccch-g55g-pm23
5.7
CVSS 3.1 · Vendor: PostgreSQL
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privilege PostgreSQL user
  2. Exploit
    Query pg_roles or pg_db_role_setting catalog
  3. Execution
    Read exposed anonymizer salt and shift
  4. Impact
    Reverse 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.

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

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

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 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

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

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.

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
Required
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

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

DescriptionCVE.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

Prevalence
Low
niche PostgreSQL data-masking extension, specialized anonymization use case
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

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
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