PostgreSQL psql \unrestrict lets superuser of pg_dump origin server execute arbitrary code in psql client
CVE-2026-18408
What is CVE-2026-18408?
Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql \restrict meta-command input expansion. The fix for CVE-2025-8714 introduced \restrict and \unrestrict to block this attack, but \unrestrict itself was sufficient for an attack. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. Non-core use of \restrict would be affected, but we've not identified non-core use. Versions before PostgreSQL 18.5, 17.11, 16.15, 15.19, and 14.24 are affected.
Affected Version(s)
PostgreSQL 18 < 18.5
PostgreSQL 17 < 17.11
PostgreSQL 16 < 16.15
References
CVSS V3.1
Timeline
Vulnerability published
Vulnerability Reserved
