Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged pgAdmin server-mode user
-
ExploitConfigure SSH tunnel to service-account-trusted host
-
ExecutionTunnel loads service account key/config/agent
-
ImpactReach target host as shared service account
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V6 - Authentication Credential protection in transit/storage
|
| Exploitation Conditions | Requires a pgAdmin 4 deployment running in server (web) mode specifically - the flaw does not apply to desktop/runtime mode, where the account pgAdmin runs as is the user. An attacker must have a valid low-privileged pgAdmin user account (PR:L) and the ability to define a server connection using an SSH tunnel. Exploitation further depends on environment conditions outside the attacker's control (hence AC:H/AT:P): the OS account running pgAdmin must possess unencrypted private keys in ~/.ssh, a ~/.ssh/config entry (IdentityFile, User, HostName, ProxyCommand), or a reachable ssh-agent, AND the targeted SSH host must accept that service account's key. The attacker can succeed with no identity file of their own or with an identity file that does not exist in their storage. What limits exploitation: requires authentication to pgAdmin, requires the server-mode (non-runtime) deployment, and yields nothing unless some reachable host actually trusts the service account's credentials. |
| Impact | This is a genuine authorization/credential-exposure flaw (CWE-522) in pgAdmin 4 server mode, but its real-world risk is moderate rather than critical, consistent with the 7.1 CVSS 4.0 score and the 'this_week' priority label. The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:L/UI:N) tells us it is network-reachable but requires an authenticated low-privileged pgAdmin account (PR:L) and carries both high attack complexity (AC:H) and a present attack requirement (AT:P) - the supplied evidence grounds AT:P/AC:H in the fact that exploitation depends on conditions the attacker does not fully control: the OS service account must actually hold usable keys in ~/.ssh, a populated ~/.ssh/config, or a live ssh-agent, AND a reachable SSH host must trust that account's key. The impact is serious where those conditions hold: VC:H plus subsequent-system SC:H/SI:H reflect that a user reaches a separate host as the shared service account with no credentials of their own. No EPSS score, no KEV listing, and no public exploit were provided, so there is no signal of active or widespread exploitation - this reads as a privilege/trust-boundary bug to be patched promptly rather than an emergency. Note one limit on the signals: the exploitation preconditions (service-account keys exist, target trusts them) are environment-specific and are not themselves captured by the CVSS vector, so raw severity may overstate risk in hardened deployments and understate it where the service account is heavily trusted. |
| Exploit ScenarioDerived | In a pgAdmin server-mode deployment, a low-privileged authenticated user creates a server connection with an SSH tunnel pointed at a bastion or database host that trusts the SSH key of the OS account pgAdmin runs as, supplying no valid identity file of their own (or one that does not exist in their storage). Because pgAdmin passed sshtunnel neither host_pkey_directories nor ssh_config_file, the tunnel silently falls back to the service account's ~/.ssh keys, ~/.ssh/config and ssh-agent and authenticates as that shared account, letting the user reach a host for which they hold no credentials. No public exploit code was identified at time of analysis; the fix commit and issue describe the mechanism in detail. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Server-mode pgAdmin 4 installations before 9.19 can be driven by any authenticated low-privileged pgAdmin user to open an SSH tunnel that authenticates with the pgAdmin service account's own ambient credentials, letting that user reach whatever SSH hosts trust the service account. The tunnel code passed neither host_pkey_directories nor ssh_config_file to the sshtunnel library, so sshtunnel fell back to the unencrypted private keys in the service account's ~/.ssh, its ~/.ssh/config (IdentityFile, User, HostName, ProxyCommand) and its ssh-agent; an attacker could succeed with no identity file of their own, or with an identity file that did not exist in their storage. Rated 7.1 under CVSS 4.0 (CVSS 3.1 assessed as AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N), prioritised 'this_week'; no public exploit code and no confirmed active exploitation were identified at time of analysis, and impact is bounded by whether the service account's credentials are actually trusted by a reachable host.
RemediationAI
Upgrade pgAdmin 4 to 9.19 or later, which contains the fix commit https://github.com/pgadmin-org/pgadmin4/commit/d52fe4740eb1af89d940f2e412bd66a0a89f08bb (issue https://github.com/pgadmin-org/pgadmin4/issues/10662); after upgrading, confirm that server-mode tunnels only accept an identity file located in the user's storage directory or a user-supplied password, and that a missing identity file raises an error rather than falling back to the service account. Because the remediation is delivered only in 9.19, the repository commit is the authoritative source if a backport is required, and any backport should preserve the host_pkey_directories=[], ssh_config_file=os.devnull and allow_agent=False settings. Where upgrading must wait, interim containment on the pgAdmin host is to strip the service account's ~/.ssh of unencrypted private keys and ssh_config entries that IdentityFile/ProxyCommand resolution could pick up, and to unset SSH_AUTH_SOCK for the pgAdmin process - accepting that any other function on that host relying on those keys or on agent forwarding will break - and to audit/rotate any service-account keys that target hosts currently trust, revoking trust where the pgAdmin account has no legitimate need. Restricting outbound SSH from the pgAdmin host to known bastions reduces reachable targets but does not remove the credential exposure itself, and running pgAdmin in desktop/runtime mode sidesteps the shared-account problem at the cost of losing the multi-user web deployment.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
pgAdmin 4's SSH tunnelling is implemented with the sshtunnel library (built on paramiko) in web/pgadmin/utils/driver/psycopg3/server_manager.py, inside ServerManager.create_ssh_tunnel. Because the forwarder was constructed without host_pkey_directories and without ssh_config_file, sshtunnel retained its defaults: it enumerated unencrypted keys under the running OS account's ~/.ssh, parsed ~/.ssh/config for IdentityFile, User, HostName and ProxyCommand directives, and could consult a reachable ssh-agent. In server (web) mode that OS account is a shared service account used by every pgAdmin user, so the ambient credential material of one account became usable by all of them - the CWE-522 (insufficiently protected credentials) root cause. The underlying trigger described in the supplied sources is simply a user configuring a server connection that uses an SSH tunnel; the specific per-host authentication outcome depends on the target host accepting the service account's key. The fix commit (d52fe4740eb1af89d940f2e412bd66a0a89f08bb, tracking issue #10662) computes server_mode as config.SERVER_MODE and not PGADMIN_RUNTIME, and in server mode sets host_pkey_directories=[], ssh_config_file=os.devnull and allow_agent=False, returning an explicit error when the configured identity file is not found in user storage instead of silently falling back; desktop mode keeps the prior behaviour and the #9814 agent-suppression logic. A dedicated test module (test_ssh_tunnel_isolation.py) asserts the server-mode kwargs.
Know when Pgadmin gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:H/SA:N
Authenticated pgAdmin user (PR:L) over the network; AC:H because success depends on the service account holding trusted keys; scope changes to a separate SSH host granting that account's access (C:H/I:H).
Primary rating from Vendor (f86ef6dc-4d3a-42ad-8f28-e6d5547a5007).
CVSS VectorVendor: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
Lifecycle Timeline
2DescriptionCVE.org
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 (IdentityFile, User, HostName, ProxyCommand) for the tunnel host, and could use its ssh-agent. In server mode any user could therefore configure a tunnel to a host that accepts the service account's key, with no credentials of their own or with an identity file that did not exist in their storage, and reach it as that account.
The fix makes tunnels in server mode use only the identity file or password the user configured: the service account's keys, configuration and agent are no longer used, and an identity file that cannot be found in the user's storage is reported instead of falling back to ~/.ssh. Desktop mode is unchanged.
This issue affects pgAdmin 4: before 9.19.
Executive ViewAI
CVE-2026-116242 in pgAdmin 4 (server mode) allows any authenticated low-privileged user to hijack the pgAdmin service account's SSH credentials, potentially reaching any SSH hosts that trust that account. Affected organizations running pgAdmin before version 9.19 face a high risk of lateral movement and credential misuse, requiring immediate leadership attention.
No vendor-released patch identified at time of analysis. Interim mitigations include restricting pgAdmin access to trusted users, disabling SSH tunneling features if possible, and reviewing/rotating the pgAdmin service account's SSH credentials and trust relationships.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
pgAdmin <= 8.3 is affected by a path-traversal vulnerability while deserializing users’ sessions in the session handling
pgAdmin <= 8.4 is affected by a Remote Code Execution (RCE) vulnerability through the validate binary path API. Rated cr
The pgAdmin server includes an HTTP API that is intended to be used to validate the path a user selects to external Post
pgAdmin versions 8.11 and earlier are vulnerable to a security flaw in OAuth2 authentication. Rated medium severity (CVS
Remote code execution in pgAdmin 4 (versions up to and including 9.9) lets an attacker who can get a crafted PLAIN-forma
SQL injection sandbox escape in pgAdmin 4's AI Assistant (versions 9.13 through 9.16) lets an attacker break out of the
OS command injection in pgAdmin 4 (all versions before 9.18) lets an authenticated user with the commonly-granted tools_
Command injection in pgAdmin 4 before 9.19 lets an authenticated, low-privileged database user execute arbitrary operati
pgAdmin <= 8.5 is affected by XSS vulnerability in /settings/store API response json payload. Rated medium severity (CVS
Cross-tenant credential theft in pgAdmin 4 (9.0 through 9.16) lets an authenticated non-owner user hijack another user's
pgAdmin <= 9.1 is affected by a security vulnerability with Cross-Site Scripting(XSS). Rated critical severity (CVSS 9.1
EUVD-2026-114383
GHSA-949g-5qqm-q7xc
NVD
CVE.org
EPSS
Exploit-DB