Skip to main content

pgAdmin 4 EUVDEUVD-2026-114383

| CVE-2026-116242 HIGH
Insufficiently Protected Credentials (CWE-522)
2026-10-30 f86ef6dc-4d3a-42ad-8f28-e6d5547a5007 GHSA-949g-5qqm-q7xc
7.1
CVSS 4.0 · Vendor: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privileged pgAdmin server-mode user
  2. Exploit
    Configure SSH tunnel to service-account-trusted host
  3. Execution
    Tunnel loads service account key/config/agent
  4. Impact
    Reach 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

pgAdmin 4 0 <9.19

Affected Packages

euvd pgadmin_4 fix: 9.19

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

Vendor (f86ef6dc-4d3a-42ad-8f28-e6d5547a5007) PRIMARY 7.1 HIGH
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
vuln.today AI 8.2 HIGH

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).

3.1 AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N
4.0 AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:H/SA:N

Primary rating from Vendor (f86ef6dc-4d3a-42ad-8f28-e6d5547a5007).

CVSS VectorVendor: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 30, 2026 - 21:18 EUVD
CVE Published
Oct 30, 2026 - 20:17 cve.org
HIGH 7.1

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.2%
Top 86% exploitable
Prevalence
High
very widely used PostgreSQL admin tool; multi-user server/web mode common in enterprises
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2024-2044 CRITICAL POC
9.9 Mar 07

pgAdmin <= 8.3 is affected by a path-traversal vulnerability while deserializing users’ sessions in the session handling

CVE-2024-3116 CRITICAL POC
9.8 Apr 04

pgAdmin <= 8.4 is affected by a Remote Code Execution (RCE) vulnerability through the validate binary path API. Rated cr

CVE-2022-4223 HIGH POC
8.8 Dec 13

The pgAdmin server includes an HTTP API that is intended to be used to validate the path a user selects to external Post

CVE-2024-9014 MEDIUM POC
6.5 Sep 23

pgAdmin versions 8.11 and earlier are vulnerable to a security flaw in OAuth2 authentication. Rated medium severity (CVS

CVE-2025-12762 CRITICAL
9.8 Nov 13

Remote code execution in pgAdmin 4 (versions up to and including 9.9) lets an attacker who can get a crafted PLAIN-forma

CVE-2026-17351 CRITICAL
9.4 Jul 31

SQL injection sandbox escape in pgAdmin 4's AI Assistant (versions 9.13 through 9.16) lets an attacker break out of the

CVE-2026-17566 CRITICAL POC
9.4 Jul 31

OS command injection in pgAdmin 4 (all versions before 9.18) lets an authenticated user with the commonly-granted tools_

CVE-2026-116241 CRITICAL
9.4 Oct 30

Command injection in pgAdmin 4 before 9.19 lets an authenticated, low-privileged database user execute arbitrary operati

CVE-2024-4216 MEDIUM POC
5.4 May 02

pgAdmin <= 8.5 is affected by XSS vulnerability in /settings/store API response json payload. Rated medium severity (CVS

CVE-2026-17349 CRITICAL
9.3 Jul 31

Cross-tenant credential theft in pgAdmin 4 (9.0 through 9.16) lets an authenticated non-owner user hijack another user's

CVE-2025-2946 CRITICAL
9.1 Apr 03

pgAdmin <= 9.1 is affected by a security vulnerability with Cross-Site Scripting(XSS). Rated critical severity (CVSS 9.1

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy