CVE-2026-18408

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

Affected Software

VendorProductVersion RangeStatus
n/aPostgreSQL18 < 18.5affected
n/aPostgreSQL17 < 17.11affected
n/aPostgreSQL16 < 16.15affected
n/aPostgreSQL15 < 15.19affected
n/aPostgreSQL0 < 14.24affected

Weaknesses

  • CWE-829: Inclusion of Functionality from Untrusted Control Sphere

Workarounds

use "pg_restore –dbname" instead of restore methods that involve "psql"

ADP Enrichment

CISA ADP Vulnrichment

  • SSVC:
  • Exploitation: none
    • Automatable: no
    • Technical Impact: total

References