# CVE-2026-120146: PostgreSQL REASSIGN OWNED authorization bypass

Source: https://junglewise.ai/threats/cve-2026-120146-missing-authorization-in-postgresql-reassign-owned-allows-a-role  
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-120146 · Severity: medium · CVSS 4.3 · Published 2026-11-12

PostgreSQL's REASSIGN OWNED command does not properly validate permissions when transferring objects between database roles. This allows a role with limited privileges to reassign objects or database ownership to other roles that the user should not be able to modify. An attacker with a limited database account can manipulate database object ownership in ways the database administrator did not intend.

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

## Quick answers

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

**How severe is CVE-2026-120146?** Medium severity, with a CVSS score of 4.3, published 12 November 2026.

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

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

**How is CVE-2026-120146 attacked?** It is attacked over the network, in a hosted service.

**Am I affected by CVE-2026-120146?** 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 14.25, 15.20, 16.16, 17.12, 18.7

## Technical details

The REASSIGN OWNED command fails to enforce SET and CREATEDB privilege checks that are correctly enforced by the equivalent ALTER ... OWNER commands. A role granted INHERIT but not SET privilege can use REASSIGN OWNED to transfer objects to other roles, and database ownership can be reassigned without the CREATEDB privilege. This is a privilege escalation through inconsistent authorization enforcement between command variants.

## Affected products

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

## Timeline

- 2026-11-12: disclosed: CVE-2026-120146 published

## References

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

## 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)
