Skip to main content
← All vulnerabilities
CVE-2026-18408

PostgreSQL psql \unrestrict lets superuser of pg_dump origin server execute arbitrary code in psql client

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 18.6, 17.11, 16.15, 15.19, 14.24
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: total

Summary

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.6, 17.11, 16.15, 15.19, and 14.24 are affected.

Timeline

  1. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: total

  2. CVE published
  3. Record last updated

Affected versions

  • n/a PostgreSQL

    From 18 · fixed in 18.6; From 17 · fixed in 17.11; From 16 · fixed in 16.15; From 15 · fixed in 15.19; fixed in 14.24

References 1

postgresql.org