PostgreSQL psql \unrestrict lets superuser of pg_dump origin server execute arbitrary code in psql client
Summary
| CVE | CVE-2026-18408 |
|---|---|
| State | PUBLISHED |
| Assigner | PostgreSQL |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-08-13 13:17:48 UTC |
| Updated | 2026-08-19 15:00:53 UTC |
| 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.5, 17.11, 16.15, 15.19, and 14.24 are affected. |
Risk And Classification
Primary CVSS: v3.1 8.8 HIGH from f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
EPSS: 0.005270000 probability, percentile 0.421780000 (date 2026-08-18)
Problem Types: CWE-829 | CWE-829 Inclusion of Functionality from Untrusted Control Sphere
| Version | Source | Type | Score | Severity | Vector |
|---|---|---|---|---|---|
| 3.1 | f86ef6dc-4d3a-42ad-8f28-e6d5547a5007 | Secondary | 8.8 | HIGH | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| 3.1 | CNA | CVSS | 8.8 | HIGH | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
CVSS v3.1 Breakdown
Attack Vector
NetworkAttack Complexity
LowPrivileges Required
NoneUser Interaction
RequiredScope
UnchangedConfidentiality
HighIntegrity
HighAvailability
HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
NVD Known Affected Configurations (CPE 2.3)
| Type | Vendor | Product | Version | Update | Edition | Language |
|---|---|---|---|---|---|---|
| Application | Postgresql | Postgresql | All | All | All | All |
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|---|---|---|---|
| CNA | Na | PostgreSQL | affected 18 18.5 rpm | Not specified |
| CNA | Na | PostgreSQL | affected 17 17.11 rpm | Not specified |
| CNA | Na | PostgreSQL | affected 16 16.15 rpm | Not specified |
| CNA | Na | PostgreSQL | affected 15 15.19 rpm | Not specified |
| CNA | Na | PostgreSQL | affected 14.24 rpm | Not specified |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| www.postgresql.org/support/security/CVE-2026-18408 | f86ef6dc-4d3a-42ad-8f28-e6d5547a5007 | www.postgresql.org | Vendor Advisory |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
Vendor Comments And Credit
Discovery Credit
CNA: The PostgreSQL project thanks Lucas Velgus, Filip Janus, and Daniel Bakker for reporting this problem. (en)
Additional Advisory Data
Workarounds
CNA: use "pg_restore --dbname" instead of restore methods that involve "psql"
There are currently no legacy QID mappings associated with this CVE.