What changed
The pgAdmin development team released pgAdmin 4 version 9.19 on October 29, 2026, with 136 changes including fixes for 15 vulnerabilities, CVE-2026-116238 through CVE-2026-116252. The fixes include bypasses of account lockout and authentication checks, operating-system command injection through Import/Export Data, unintended use of the pgAdmin service account's credentials, file-path isolation issues and session handling. In server mode, free-text Password Exec Commands are replaced by an administrator-defined SERVER_PASSEXEC_COMMANDS allowlist. The old ENABLE_SERVER_PASS_EXEC_CMD flag is ignored. Administrators must configure the allowlist before the first start after upgrading: saved commands that do not exactly match an allowlisted entry are cleared at that point.
Why it matters
A pgAdmin server may be shared by several database operators and hold privileged connections, saved passwords and access to backup tools. Flaws that bypass authentication safeguards, execute commands on the pgAdmin host or leak the service account's credentials can cross boundaries between users and database infrastructure. Upgrading is necessary, but administrators relying on external password retrieval commands must also plan the configuration migration: losing unmatched saved commands can interrupt connections and the automatic clearing cannot be undone. Desktop and server installations have different exposure; the announcement does not establish active exploitation.
Authentication and command-execution boundaries
CVE-2026-116238 addresses failed-login limit bypasses and access to Flask-Security's own login, change and reset views; CVE-2026-116239 addresses LDAP/Kerberos identity collision; CVE-2026-116241 closes a route to host command execution through a crafted query export. Other fixes constrain connection files, SSH and Kerberos identities, shared storage, file-path races and credential inheritance. Operators should evaluate which modes and authentication providers they actually deploy rather than treating every CVE as universally exploitable.
Password Exec migration is a separate operational risk
In server mode, configure SERVER_PASSEXEC_COMMANDS with approved named commands before starting 9.19. On first start, an existing command is mapped to its name only when it exactly matches an allowlist entry; other saved commands are cleared and cannot be recovered through the migration. If the list is empty, conversion is postponed and warnings are logged. Commands now run without a shell and with a reduced environment. Check connections and credentials after upgrading.
Other compatibility details
The release changes shared-server credential-file inheritance and prevents server-mode SSH tunnels from using the pgAdmin service account's SSH agent or ~/.ssh directory. Operators relying on those behaviours must configure explicit credentials. Python wheel deployments on Python 3.10+ require Flask-Security-Too 5.8.3 or newer. The release also adds pg_timetable management, extended-statistics nodes and new query-result export formats; those features are secondary to the security and migration work.