CVE-2026-18408

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

State
Published
Severity
8.8 High
Published
Aug 13, 2026
Updated
Aug 29, 2026
Reserved
Jul 30, 2026

Read the record on cve.org

Description

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.

Scores

CVSSScoreVectorSource
3.18.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:HPostgreSQL

Weaknesses

  • CWE-829 Inclusion of Functionality from Untrusted Control Sphere

Affected Products

ProductVersions
PostgreSQLn/a
  • 18 to before 18.6Affected
  • 17 to before 17.11Affected
  • 16 to before 16.15Affected
  • 15 to before 15.19Affected
  • before 14.24Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.