The PostgreSQL Global Development Group released updates yesterday that address 52 security flaws, including a type confusion vulnerability tracked as CVE-2026-6460 that enables authenticated remote code execution on database servers.
The flaw, which carries a CVSS score of 8.8, stems from composite types whose field definitions can be altered while older values remain cached elsewhere in the server. This mismatch allows an attacker to cause the server to interpret legacy data under a new type, potentially leading to arbitrary code execution with the privileges of the operating system user running PostgreSQL.
Security researcher Mehmet Ince published a technical write-up detailing a working exploit demonstrated on PostgreSQL 18.6. The technique involves preparing a query that holds a composite value, changing one of its field types, and then executing the query to trigger a crash followed by memory address leakage. Ince noted that the attack can be performed by a lowest-privileged login role.
All versions before 18.7, 17.12, 16.16, 15.20, and 14.25 are affected. Full mitigation also requires rebuilding every C-language extension, as extensions compiled against older releases may remain vulnerable. Red Hat and the project advisory indicate that an attacker needs at minimum a database login with the ability to create or modify objects.
The root cause traces to May 2004 when PostgreSQL added support for altering column types, with the final exploitation path enabled by a 2015 change. Ince privately shared proofs of concept with managed service providers including AWS, Microsoft, Google, Supabase, Databricks, and Ubicloud.
Among the remaining issues, CVE-2026-116322 allows an unauthenticated client to trigger a restart of PostgreSQL 18 servers. Several client tools also received fixes: crafted archives can cause pg_restore to execute code, and compromised sources can make psql run arbitrary commands via pg_dump tar output.
Administrators should update to the latest minor releases, rebuild extensions, restart services if not using the official unit file, and reindex databases as specified in the release announcement. The project warns against disabling the new composite_type_mismatch checks.


