CVE-2026-120141 PostgreSQL materialized set-returning function type confusion executes arbitrary code

High 8.8 Published Updated

A database user can execute code as the database OS user via type confusion in PostgreSQL materialized set-returning functions.

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

CVE-2026-120141 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 materialized set-returning functions allows a database user to execute arbitrary code as the operating system user running the database, via returning rows having different dynamic RECORD return types. json_populate_recordset() is one affected function. 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-120141?

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

How do I fix CVE-2026-120141?

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

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

Sources

Also known as ALPINE-CVE-2026-120141, DEBIAN-CVE-2026-120141, ECHO-1d62-e525-a130, GHSA-fhmx-cqh3-5vvj.

Is CVE-2026-120141 in your software?

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

Check your SBOMs for free