Description
PostgreSQL Anonymizer contains a vulnerability that allows unprivileged masked users to repeatedly call the anon.hash() function and collects (seed, hash_output) pairs to perform an offline brute-force attack and deduce the salt. A masked role can run a RESTRICTED function when the call is placed inside the sub-select. The problem is resolved in PostgreSQL Anonymizer 3.2.3 and later versions
Published: 2026-09-25
Score: 4.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Salt compromise via offline brute‑force
Action: Patch
AI Analysis

Impact

The vulnerability allows a masked user without elevated privileges to invoke the anon.hash() function through a sub‑select, repeatedly collecting (seed, hash_output) pairs. By aggregating these values the attacker can perform an offline brute‑force attack and deduce the salt used for data anonymization, effectively breaking the intended privacy guarantees of the extension.

Affected Systems

The flaw exists in DALIBO’s PostgreSQL Anonymizer extension for PostgreSQL. Versions older than 3.2.3 are affected; the issue was fixed in release 3.2.3 and later.

Risk and Exploitability

The CVSS score is 4.3, indicating moderate severity, and the EPSS score is unavailable. The vulnerability is not listed in CISA’s KEV catalog. The likely attack vector is through a database connection where a masked user can issue arbitrary SELECT statements; by embedding the call to anon.hash() inside a subquery, the restricted function becomes reachable. Once the attacker gathers sufficient (seed, hash_output) samples, a brute‑force attack offline can recover the salt, thereby compromising all data hashed with that key.

Generated by OpenCVE AI on September 25, 2026 at 18:49 UTC.

Remediation

Vendor Workaround

Disable dynamic masking


OpenCVE Recommended Actions

  • Upgrade PostgreSQL Anonymizer to version 3.2.3 or newer
  • If an upgrade cannot be performed immediately, temporarily disable dynamic masking to prevent the restricted function from being reachable
  • Restrict or revoke permission for the anon.hash() function from unprivileged masked roles to limit the attack surface

Generated by OpenCVE AI on September 25, 2026 at 18:49 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 26 Sep 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Sat, 26 Sep 2026 12:00:00 +0000

Type Values Removed Values Added
First Time appeared Dalibo
Dalibo postgresql Anonymizer
Vendors & Products Dalibo
Dalibo postgresql Anonymizer

Fri, 25 Sep 2026 15:45:00 +0000

Type Values Removed Values Added
Description PostgreSQL Anonymizer contains a vulnerability that allows unprivileged masked users to repeatedly call the anon.hash() function and collects (seed, hash_output) pairs to perform an offline brute-force attack and deduce the salt. A masked role can run a RESTRICTED function when the call is placed inside the sub-select. The problem is resolved in PostgreSQL Anonymizer 3.2.3 and later versions
Title PostgreSQL Anonymizer: RESTRICTED functions are reachable through a subLink
Weaknesses CWE-328
References
Metrics cvssV3_1

{'score': 4.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N'}


Subscriptions

Dalibo Postgresql Anonymizer
cve-icon MITRE

Status: PUBLISHED

Assigner: PostgreSQL

Published:

Updated: 2026-09-25T16:06:42.100Z

Reserved: 2026-09-24T15:46:30.563Z

Link: CVE-2026-97469

cve-icon Vulnrichment

Updated: 2026-09-25T16:06:38.931Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-09-25T16:17:30.713

Modified: 2026-09-29T21:27:41.130

Link: CVE-2026-97469

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-26T11:45:09Z

Weaknesses