CVE-2026-120148 PostgreSQL extended-statistics pseudo-type confusion executes arbitrary code
An object creator can execute code as the database OS user via a statistics expression of an anonymous RECORD type; PostgreSQL administrators should care.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Harmful if only installed
- No
- Needs a specific call
- No
- Fix
- Available
What is CVE-2026-120148?
CVE-2026-120148 is a high-severity memory corruption vulnerability in PostgreSQL, published on 12 Nov 2026. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
Type confusion in PostgreSQL extended statistics allows an object creator to execute arbitrary code as the operating system user running the database, via a statistics expression of an anonymous RECORD type whose backend-local type identifier denotes a different row type in another session. Versions before PostgreSQL 18.7, 17.12, 16.16, 15.20, and 14.25 are affected.
Weakness: CWE-843
Which versions are affected by CVE-2026-120148?
An affected version is exposed as installed. No special setting or call is needed.
How do I fix CVE-2026-120148?
Upgrade to a fixed version.
Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.
Is CVE-2026-120148 being exploited?
There is no known exploitation of CVE-2026-120148 in the wild and no public exploit code.
Sources
Also known as ALPINE-CVE-2026-120148, DEBIAN-CVE-2026-120148, ECHO-9b9f-3cc7-ecfd, GHSA-xjmm-59mp-3mvc.