CVE-2026-120151 PostgreSQL plpgsql record-field type confusion executes arbitrary code

High 8.8 Published Updated

An object creator can execute code as the database OS user via type confusion in PostgreSQL plpgsql record-field assignment.

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

CVE-2026-120151 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 plpgsql record-field assignment allows an object creator to execute arbitrary code as the operating system user running the database, via a reentrant domain CHECK that changes a RECORD variable's row type while a value is being cast. 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-120151?

An affected version is exposed as installed. No special setting or call is needed.

How do I fix CVE-2026-120151?

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-120151 being exploited?

There is no known exploitation of CVE-2026-120151 in the wild and no public exploit code.

Sources

Also known as ALPINE-CVE-2026-120151, DEBIAN-CVE-2026-120151, ECHO-99c4-e805-1871, GHSA-92mx-px77-82fx.

Is CVE-2026-120151 in your software?

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

Check your SBOMs for free