# CVE-2026-120143: PostgreSQL use-after-free in trigger functions via transition table cursor

Source: https://junglewise.ai/threats/cve-2026-120143-use-after-free-in-postgresql-trigger-functions-allows-an-object  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-11-12. Updated: 2026-11-12  
License: CC BY 4.0 with a link back

CVE-2026-120143 · Severity: high · CVSS 8.8 · Published 2026-11-12

PostgreSQL is a widely-used database management system that runs on servers to store and manage data. A use-after-free vulnerability in trigger functions allows someone who can create database objects to execute arbitrary code with the privileges of the operating system user running the database, potentially leading to complete system compromise. The flaw is triggered through a cursor operating on a transition table within trigger functions.

Technologies: [PostgreSQL](https://junglewise.ai/threats/technologies/postgresql). Vendors: [PostgreSQL](https://junglewise.ai/threats/vendors/postgresql).

## Quick answers

**Is CVE-2026-120143 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-120143 being exploited in the wild.

**How severe is CVE-2026-120143?** High severity, with a CVSS score of 8.8, published 12 November 2026.

**Which products and versions are affected?** PostgreSQL before 18.7, 17.12, 16.16, 15.20, 14.25.

**Is there a fix for CVE-2026-120143?** Yes: fixed in PostgreSQL 18.7, 17.12, 16.16, 15.20, 14.25. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-120143 attacked?** It is attacked over the network.

**Am I affected by CVE-2026-120143?** Check whether you run PostgreSQL at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- Fixed in PostgreSQL 18.7, 17.12, 16.16, 15.20, 14.25

## Technical details

The vulnerability is a use-after-free in PostgreSQL's trigger function implementation, specifically when a cursor is used over a transition table. An authenticated attacker with object creation privileges can exploit this to execute arbitrary code as the OS user running the database server. The attack requires local authentication (PR:L) but no user interaction, and no special network setup beyond the ability to submit SQL commands.

## Affected products

- PostgreSQL PostgreSQL before 18.7, 17.12, 16.16, 15.20, 14.25

## Timeline

- 2026-11-12: disclosed
- 2026-11-12: patched

## References

- [https://www.postgresql.org/support/security/CVE-2026-120143/](https://www.postgresql.org/support/security/CVE-2026-120143/)

## Related threats

- [PostgreSQL CREATE EXTENSION arbitrary SQL execution](https://junglewise.ai/threats/cve-2026-6467-uncontrolled-search-path-element-in-postgresql-create-extension)
- [PostgreSQL type confusion in ALTER allows arbitrary code execution](https://junglewise.ai/threats/cve-2026-6460-type-confusion-in-postgresql-allows-an-object-creator-to-execute)
- [PostgreSQL type confusion in SQL-language functions arbitrary code execution](https://junglewise.ai/threats/cve-2026-18447-type-confusion-in-postgresql-sql-language-functions-allows-an)
- [PostgreSQL INSERT ON CONFLICT authorization bypass on auto-updatable views](https://junglewise.ai/threats/cve-2026-16237-improper-protection-in-postgresql-insert-on-conflict-on-auto)
- [PostgreSQL dblink and subscriptions arbitrary file append](https://junglewise.ai/threats/cve-2026-14661-external-control-of-file-name-in-postgresql-dblink-and-create)
