Skip to content
OpenAdvisories
Medium · 5.4 CVE-2026-116312 EUVD-2026-124492GHSA-xqm8-qxc4-qxc9

Inconsistent transition-capture state in PostgreSQL MERGE allows a table data modifier to make an AFTER trigger process the wrong new row, …

Published Nov 12, 2026 · Assigned by PostgreSQL

Description

Inconsistent transition-capture state in PostgreSQL MERGE allows a table data modifier to make an AFTER trigger process the wrong new row, via a partitioned table MERGE that performs an INSERT before an UPDATE. Within major versions 15-18, minor versions before PostgreSQL 18.7, 17.12, 16.16, and 15.20 are affected. Versions before PostgreSQL 15 are unaffected.

Affected products

VendorProductAffectedFixed
— PostgreSQL 17 <17.12 —
— PostgreSQL 15 <15.20 —
— PostgreSQL 16 <16.16 —
— PostgreSQL 18 <18.7 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 postgresql-18 No fix yet —
Debian 13 postgresql-17 17.12-0+deb13u1 —
Debian 12 postgresql-15 15.20-0+deb12u1 —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 postgresql-18 No fix yet —
Ubuntu 26.04 LTS postgresql-18 No fix yet —
Ubuntu 24.04 LTS postgresql-16 No fix yet —
Ubuntu 22.04 LTS postgresql-14 No fix yet —
Ubuntu 20.04 LTS postgresql-12 No fix yet —
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 18.04 LTS postgresql-10 No fix yet —
Ubuntu Pro 16.04 LTS postgresql-9.5 No fix yet —
Ubuntu Pro 14.04 LTS postgresql-9.3 No fix yet —
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed postgresql15 15.20-1.1 openSUSE-SU-2026:12551-1
openSUSE Tumbleweed postgresql16 16.16-1.1 openSUSE-SU-2026:12552-1
openSUSE Tumbleweed postgresql17 17.12-1.1 openSUSE-SU-2026:12553-1
ReleasePackageFixed inAdvisory
Alpine v3.24 postgresql16 16.16-r0 —
Alpine v3.24 postgresql17 17.12-r0 —
Alpine v3.24 postgresql18 18.7-r0 —
Alpine v3.23 postgresql16 16.16-r0 —
Alpine v3.23 postgresql17 17.12-r0 —
Alpine v3.23 postgresql18 18.7-r0 —
Alpine v3.22 postgresql15 15.20-r0 —
Alpine v3.22 postgresql16 16.16-r0 —
Alpine v3.22 postgresql17 17.12-r0 —
Alpine v3.21 postgresql15 15.20-r0 —
Alpine v3.21 postgresql16 16.16-r0 —
Alpine v3.21 postgresql17 17.12-r0 —

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 postgresql No fix yet —

Advisories 4

References