Pgadmin.org vulnerabilities
We track 35 vulnerabilities in Pgadmin.org products. 35 are rated high or critical, and none are known to be exploited. The most recent was published on October 30, 2026.
Latest Pgadmin.org vulnerabilities
- 9.6 Critical severity
pgAdmin 4: Improper Limitation of a Pathname to a Restricted Directory
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 "../<
- 9.6 Critical severity
pgAdmin 4: Insufficiently Protected Credentials
When a server in pgAdmin 4 had no password file, client certificate or client key configured, or the configured one could not be found, pgAdmin left the parameter out of the connection and libpq fell back to the defaults of the operating-system account running
- 7.6 High severity
pgAdmin 4: Invocation of Process Using Visible Sensitive Information
To 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 own process environment: as PGPASSWORD for the PSQL tool, and under a per-process variable for a utility. Nothing remove
- 9.6 Critical severity
pgAdmin 4: Insufficiently Protected Credentials
libpq looks a connection service up in the service file of the operating-system account running pgAdmin 4, and an entry there can hold a password or name a password file or client certificate. In server mode any user could set a server's Service, or a "service
- 9.6 Critical severity
pgAdmin 4: Insufficiently Protected Credentials
When a pgAdmin 4 connection was not meant to use a Kerberos user's delegated credentials, pgAdmin removed KRB5CCNAME from its environment, so the Kerberos library fell back to the default credential cache, or a client keytab, of the operating-system account ru
- 8.8 High severity
pgAdmin 4: Untrusted Search Path
pgAdmin 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 path was refused only when it lay under the per-user storage directory (STORAGE_DIR), not under a SHARED_STORAGE directory,
- 9.6 Critical severity
pgAdmin 4: Insufficiently Protected Credentials
pgAdmin 4 opens SSH tunnels with the sshtunnel library but gave it neither host_pkey_directories nor ssh_config_file, so it always loaded the unencrypted private keys in ~/.ssh of the operating-system account running pgAdmin, read that account's ~/.ssh/config
- 8.8 High severity
pgAdmin 4: Improper Neutralization of Special Elements used in an OS Command
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
- 8.8 High severity
pgAdmin 4: Improper Authentication
In server mode pgAdmin 4 keeps an account per authentication source, so the same username can exist as, for example, an internal account and an LDAP account. After LDAP or Kerberos authenticated a user, pgAdmin chose the account to log in by username alone, or
- 9.8 Critical severity
pgAdmin 4: Improper Restriction of Excessive Authentication Attempts
In server mode pgAdmin 4 locks an internal account after MAX_LOGIN_ATTEMPTS failed logins (3 by default). The limit could be bypassed, giving an unauthenticated attacker an unlimited number of password guesses against any internal account, including the admini
- 8.8 High severity
pgAdmin 4: Improper Limitation of a Pathname to a Restricted Directory
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, whic
- 9.8 Critical severity
pgAdmin 4: Authentication Bypass by Spoofing
pgAdmin 4's Webserver authentication source is intended to accept an identity asserted by the web server or reverse proxy in front of pgAdmin, delivered through the WSGI/CGI environment. WebserverAuthentication.get_user() read config.WEBSERVER_REMOTE_USER from
- 9.9 Critical severity
pgAdmin 4: Improper Neutralization of Special Elements used in an OS Command
pgAdmin 4's Import/Export Data tool builds a psql \copy (...) command line by interpolating a user-supplied SQL query into a Jinja template and passing the rendered line to psql via --command. To stop an attacker from breaking out of the (...) wrapper, create_
- 9.0 Critical severity
pgAdmin 4: Improper Neutralization of Special Elements used in an SQL Command
The fix for CVE-2026-12045 in pgAdmin 4 9.16 required the LLM-supplied query passed to the AI Assistant's execute_sql_query tool to parse, via sqlparse, as exactly one non-transaction-control statement before running it inside a BEGIN TRANSACTION READ ONLY wra
- 9.6 Critical severity
pgAdmin 4: Insufficiently Protected Credentials
/misc/workspace/adhoc_connect_server, part of the Workspaces feature introduced in pgAdmin 4 9.0, when passed the id of an existing server, clones that server via Server.clone(), which copies every column from the source row, including user_id, shared, shared_
- 8.8 High severity
pgAdmin 4: Improper Neutralization of Special Elements used in an OS Command
The MASTER_PASSWORD_HOOK setting, introduced in pgAdmin 4 7.2, lets an administrator configure an external command that returns a per-user encryption key, with %u in the configured string replaced by the current user's name. The previous implementation substit
- 8.8 High severity
pgAdmin 4: Improper Neutralization of Special Elements used in an SQL Command
The fix for CVE-2026-12044 in pgAdmin 4 9.16 hardened qtLiteral and switched sixteen COMMENT ON / pgstattuple / pgstatindex templates to it, but missed several sinks that had been placed in test_sql_string_literal_lint.py's ALLOWLIST on the incorrect assumptio
- 8.8 High severity
pgAdmin 4: Improper Neutralization of Special Elements used in an SQL Command
SQL injection in pgAdmin 4's named restore point endpoint (POST /browser/server/restore_point/{gid}/{sid}). The user-supplied 'value' field was interpolated directly into the SQL string with str.format() instead of being passed as a bound parameter, allowing a
- 9.0 Critical severity
pgAdmin 4: Missing Authentication for Critical Functionality
Two state-mutating endpoints in pgAdmin 4's SQL Editor blueprint -- DELETE /sqleditor/close/<trans_id> and POST /sqleditor/initialize/sqleditor/update_connection/<sgid>/<sid>/<did> -- were the only routes in the module missing the @pga_login_required decorator
- 8.8 High severity
pgAdmin 4: Improper Neutralization of Special Elements used in a Command
Read-only transaction bypass in the pgAdmin 4 AI Assistant allows an attacker who can influence database content that the assistant reads to execute arbitrary SQL with the privileges of the pgAdmin user's database role. The AI Assistant's execute_sql_query too
- 8.8 High severity
pgAdmin 4: Improper Neutralization of Special Elements used in an SQL Command
SQL injection in pgAdmin 4 across every dialog template that renders ``COMMENT ON ... IS '<description>'`` for a user-supplied description field. The Jinja templates for Domains (and their constraints), Foreign Tables, Languages, and Event Triggers, plus the V
- 8.1 High severity
pgAdmin 4: UNIX Symbolic Link (Symlink) Following
Symbolic-link path traversal (CWE-61, CWE-22) in pgAdmin 4 File Manager. check_access_permission used os.path.abspath, which resolves '..' but does not resolve symbolic links, while the subsequent kernel write follows symlinks. An authenticated user could plan
- 7.8 High severity
pgAdmin 4: Deserialization of Untrusted Data
Deserialization of untrusted data (CWE-502) in pgAdmin 4 FileBackedSessionManager. The session manager performed unsafe deserialization of session-file contents (using Python's standard object-serialization module) before performing any HMAC integrity check. A
- 8.8 High severity
pgAdmin 4: Improper Neutralization of Special Elements used in an OS Command
OS command injection (CWE-78) vulnerability in pgAdmin 4 Import/Export query export. User-supplied input was interpolated directly into a psql \copy metacommand template without sanitization. An authenticated user could inject ") TO PROGRAM 'cmd'" to break out
- 8.8 High severity
pgAdmin 4: Improper Neutralization of Special Elements used in an SQL Command
SQL injection vulnerability in pgAdmin 4 Maintenance Tool. Four user-supplied JSON fields (buffer_usage_limit, vacuum_parallel, vacuum_index_cleanup, reindex_tablespace) were concatenated directly into the rendered VACUUM/ANALYZE/REINDEX command and passed to
- 9.9 Critical severity
pgAdmin 4: Improper Access Control
Authorization vulnerability in pgAdmin 4 server mode affecting Server Groups, Servers, Shared Servers, Background Processes, and Debugger modules. Multiple endpoints fetched user-owned objects without filtering by the requesting user's identity. An authenticat
- 8.8 High severity
pgAdmin 4: Improper Control of Generation of Code
pgAdmin versions up to 9.10 are affected by a Remote Code Execution (RCE) vulnerability that occurs when running in server mode and performing restores from PLAIN-format dump files. This issue allows attackers to inject and execute arbitrary commands on the se
- 7.5 High severity
pgAdmin 4: Improper Neutralization of Special Elements used in an LDAP Query
pgAdmin <= 9.9 is affected by an LDAP injection vulnerability in the LDAP authentication flow that allows an attacker to inject special LDAP characters in the username, causing the DC/LDAP server and the client to process an unusual amount of data DOS.
- 8.8 High severity
pgAdmin 4: Improper Neutralization of Special Elements used in an OS Command
pgAdmin 4 versions up to 9.9 are affected by a command injection vulnerability on Windows systems. This issue is caused by the use of shell=True during backup and restore operations, enabling attackers to execute arbitrary system commands by providing speciall
- 9.8 Critical severity
pgAdmin 4: Improper Control of Generation of Code
pgAdmin versions up to 9.9 are affected by a Remote Code Execution (RCE) vulnerability that occurs when running in server mode and performing restores from PLAIN-format dump files. This issue allows attackers to inject and execute arbitrary commands on the ser
- 7.9 High severity
pgAdmin 4: Origin Validation Error
pgAdmin <= 9.7 is affected by a Cross-Origin Opener Policy (COOP) vulnerability. This vulnerability allows an attacker to manipulate the OAuth flow, potentially leading to unauthorised account access, account takeover, data breaches, and privilege escalation.
- 8.8 High severity
pgAdmin 4: Improper Control of Generation of Code
Remote Code Execution security vulnerability in pgAdmin 4 (Query Tool and Cloud Deployment modules). The vulnerability is associated with the 2 POST endpoints; /sqleditor/query_tool/download, where the query_commited parameter and /cloud/deploy endpoint, where
- 8.8 High severity
pgAdmin 4: Improper Neutralization of Special Elements used in an SQL Command
pgAdmin <= 8.5 is affected by a multi-factor authentication bypass vulnerability. This vulnerability allows an attacker with knowledge of a legitimate account’s username and password may authenticate to the application and perform sensitive actions within the
- 9.8 Critical severity
pgAdmin 4: Improper Neutralization of Special Elements used in a Command
pgAdmin <= 8.4 is affected by a Remote Code Execution (RCE) vulnerability through the validate binary path API. This vulnerability allows attackers to execute arbitrary code on the server hosting PGAdmin, posing a severe risk to the database management system'
- 9.9 Critical severity
pgAdmin 4: Path Traversal: 'dir....filename'
pgAdmin <= 8.3 is affected by a path-traversal vulnerability while deserializing users’ sessions in the session handling code. If the server is running on Windows, an unauthenticated attacker can load and deserialize remote pickle objects and gain code executi