CVE Catalog

CVE-2026-116249

HighCVSS 8.4
Published: Translated: NVD NIST

Summary

In pgAdmin 4 server mode before 9.19, get_complete_file_path() only stripped leading slashes before joining paths, so a path such as ../<another user>/.pgpass could name another user's file. The sslkeylogfile parameter was passed to libpq unchanged, and make_conninfo() quoted parameter values but not names, allowing additional keyword=value pairs to be smuggled in.

Risk Assessment

A server-mode user can use another user's saved passwords, client certificate, or SSH key, and can cause a file to be created or appended as the pgAdmin service account. This may lead to unauthorized access to database servers.

Recommendation

Update pgAdmin 4 to version 9.19 or later. Until then, restrict access to server mode and review the contents of servers.json and server configurations.

Other vulnerabilities in pgAdmin 4

See all
Original NVD description (English source)

In server mode pgAdmin 4 resolves a server's password file, SSL certificate, key, CRL and SSH tunnel identity file relative to the user's storage directory, but get_complete_file_path() only stripped leading slashes before joining the two. A path such as "../<another user>/.pgpass", set through the server dialog, the REST API or a servers.json import, therefore named another user's file, and connecting used that user's saved passwords, client certificate or SSH key. The sslkeylogfile connection parameter was passed to libpq unchanged, so a path outside storage let libpq create or append a file as the account running pgAdmin. make_conninfo() also quoted connection parameter values but not their names, so a crafted parameter name could smuggle additional keyword=value pairs past these checks. The fix requires the resolved path, with symbolic links followed, to stay inside the user's storage directory or the named shared storage directory, confines sslkeylogfile the same way, and accepts only exact libpq keywords as connection parameter names. A refused path or keyword is reported instead of letting libpq fall back to a default. This issue affects pgAdmin 4: before 9.19.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS