CVE-2026-120148 PostgreSQL extended-statistics pseudo-type confusion executes arbitrary code

High 8.1 Published Updated

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.

Is CVE-2026-120148 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free