CVE-2026-116241

HighCVSS 8.8/10Last modified Nov 6, 2026

Description

pgAdmin 4's Import/Export Data tool wraps a user's query export in a psql \copy (...) TO command and checks that the query's parentheses are balanced so that nothing can escape the wrapper. The check rejected a backslash inside a single-quoted string, but not inside a double-quoted identifier, where it treated the next double quote as closing the identifier. psql's \copy parser applies the connection's escape character to whichever quote opened a token, so with standard_conforming_strings off a backslash-escaped double quote does not close the identifier. pgAdmin's and psql's view of the quoting then diverged, a closing parenthesis hidden from the check ended the \copy (...) wrapper, and a following TO PROGRAM clause was executed by psql on the pgAdmin host, as the operating-system account running pgAdmin, before the server rejected the statement. An ordinary database role can turn standard_conforming_strings off for itself, and the Import/Export Data permission is granted to non-administrators by default.

This is a bypass of the fix for CVE-2026-17566. The fix rejects any backslash inside a double-quoted identifier, as was already done for single-quoted strings, since its meaning depends on a server setting that cannot be known reliably when the query is validated.

This issue affects pgAdmin 4: before 9.19.

Metrics

CVSS 3.1 8.8/10CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Weakness enumeration

Affected software

VendorProductVersions
pgadmin.orgpgAdmin 4< 9.19

References

Timeline

Published
Oct 30, 2026
Last modified
Nov 6, 2026
NVD status
Analyzed

Related CVEs from 2026

CVE-2026-1162429.6pgAdmin 4 opens SSH tunnels with the sshtunnel library but gave it neither host_pkey_directories nor ssh_config_file, so it always loaded thCVE-2026-1162438.8pgAdmin 4 runs pg_dump, pg_restore, pg_dumpall and psql from the binary path a user sets in their preferences. In server mode the binary patCVE-2026-1162449.6When a pgAdmin 4 connection was not meant to use a Kerberos user's delegated credentials, pgAdmin removed KRB5CCNAME from its environment, sCVE-2026-1162459.6libpq looks a connection service up in the service file of the operating-system account running pgAdmin 4, and an entry there can hold a pasCVE-2026-1162467.6To pass a server's password to psql and to the utilities pgAdmin 4 runs as background processes, the server manager wrote it into pgAdmin's CVE-2026-1162479.6When a server in pgAdmin 4 had no password file, client certificate or client key configured, or the configured one could not be found, pgAdCVE-2026-1162486.8In pgAdmin 4 server mode only administrators are meant to share a server with all users; the server dialog shows the Shared switch only to tCVE-2026-1162499.6In server mode pgAdmin 4 resolves a server's password file, SSL certificate, key, CRL and SSH tunnel identity file relative to the user's stCVE-2026-116257.5Bytes::Random::Secure versions through 0.29 for Perl share internal state across forked processes. When an object is initialised before forCVE-2026-1162506.5In server mode pgAdmin 4 validates a path a user gives for a file in their storage directory with check_access_permission() and then opened CVE-2026-1162515.4pgAdmin 4 did not invalidate a user's existing sessions when their password changed, either through the user's own change password dialog orCVE-2026-1162526.5pgAdmin 4's materialized view refresh passed the target database's name to psql's --dbname argument unchanged. libpq treats a --dbname value
CVE-2026-116241: High severity, CVSS 8.8 | Vulnix