CVE-2026-18408
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
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
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| n/a | PostgreSQL | 18 < 18.5 | affected |
| n/a | PostgreSQL | 17 < 17.11 | affected |
| n/a | PostgreSQL | 16 < 16.15 | affected |
| n/a | PostgreSQL | 15 < 15.19 | affected |
| n/a | PostgreSQL | 0 < 14.24 | affected |
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
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.