CVE-2026-105614: PostgreSQL Anonymizer: Unbounded image-decode memory allocation (DoS) in anon.image_blur()
PostgreSQL Anonymizer's anon.imageblur() function doesn't check the declared dimension of the provided image, allowing an attacker to provide a small image with enormous declared dimensions. This vulnerability can be exploited to exhaust the memory of a backend and OOM-kill it (when ovecommit is on), which results in a cluster-wide crash recovery. The problem is resolved in PostgreSQL Anonymizer 3.3.0 and later versions.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
PostgreSQL Anonymizerto a version that resolves this vulnerability.Fixed in 3.3.0
Event History
Frequently Asked Questions
Who can exploit this issue?
An attacker must be able to invoke the anon.image_blur() function and provide a crafted image. No authentication or privileges are specified in the available data, but exploitation requires user interaction according to the supplied vector.
What is the operational impact of successful exploitation?
A crafted small image with enormous declared dimensions can exhaust a PostgreSQL backend's memory. When memory overcommit is enabled, the backend can be OOM-killed, triggering cluster-wide crash recovery.
Which versions are affected and what fixes the issue?
The issue is resolved in PostgreSQL Anonymizer 3.3.0 and later. Versions earlier than 3.3.0 should be treated as affected if anon.image_blur() is available.