Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to shared pgAdmin server
-
DeliveryIdentify admin's shared server id
-
ExploitCall adhoc_connect_server to clone it
-
ExecutionClone persists with admin credentials, reassigned to attacker
-
PersistOpen newly-owned connection
-
ImpactAuthenticate to database as admin
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 an authenticated pgAdmin user (PR:L) in a multi-user/server-mode deployment where the Workspaces feature (introduced in 9.0) is present and another user - typically an administrator - has created a shared server definition with saved credentials (save_password set, storing password and/or tunnel_password). The attacker must know or enumerate the id of that existing shared server and invoke /misc/workspace/adhoc_connect_server against it. Limiting factors: single-user desktop pgAdmin installs, deployments with no shared servers, or shared servers that do not save passwords are not exploitable; the attack notably persists the credential-bearing clone even if the actual database connection subsequently fails, so a wrong network path does not protect the credentials. |
| Impact | The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N, VC:H/VI:H, SC:H/SI:H) scoring 9.3 Critical is internally consistent with the description: network-reachable, low-complexity, requiring only low privileges (any authenticated pgAdmin user in a shared/multi-user deployment) and no user interaction, with high confidentiality and integrity impact both on pgAdmin and on the subsequent database system. The realistic risk is meaningfully gated by deployment: it requires pgAdmin running in server/multi-user mode with at least one shared server that has stored (saved) credentials and more than one user account - single-user desktop installs are not exposed. No EPSS score was provided, there is no KEV listing, and no public POC was supplied, so this is a high-severity, credential-exposure bug whose exploitation depends on a specific but common enterprise configuration rather than confirmed in-the-wild activity. This is a genuine priority for organizations that share admin-owned server connections among analysts, and lower priority for isolated desktop use. |
| Exploit ScenarioDerived | In a shared pgAdmin server-mode deployment, a low-privileged analyst who can see an administrator's shared PostgreSQL server invokes the Workspaces adhoc-connect endpoint against that server's id. pgAdmin clones the server row - copying the admin's saved database and tunnel passwords - and reassigns it to the analyst, who then opens the newly-owned connection and authenticates to the database as the administrator using credentials they never possessed. No public POC was provided, but exploitation is low-complexity network abuse of a legitimate authenticated feature. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 31, 2026
Cross-tenant credential theft in pgAdmin 4 (9.0 through 9.16) lets an authenticated non-owner user hijack another user's shared server connection by abusing the Workspaces adhoc-connect endpoint (/misc/workspace/adhoc_connect_server), which clones a target server row verbatim - including its owner's stored database password and tunnel password - and reassigns ownership to the caller. The victim is typically an administrator whose shared server carries saved credentials, and the attacker gains use of those database credentials and any privileges they confer. There is no public exploit identified at time of analysis and it is not on CISA KEV, but the fix (pgAdmin 4 9.17) and the underlying commit are public, and EPSS was not provided.
RemediationAI
Vendor-released patch: pgAdmin 4 9.17 - upgrade to 9.17 or later, which forces adhoc-clone rows to be owned by the calling user, private (not shared), and stripped of the source's stored password, save_password, and tunnel_password before commit (see commit https://github.com/pgadmin-org/pgadmin4/commit/64a9cdbd6a240a962144f84418beaf9e66419779 and issue https://github.com/pgadmin-org/pgadmin4/issues/10200). If you cannot patch immediately, reduce exposure by not storing/saving passwords on shared server definitions (disable 'Save Password' so no credential material exists to clone, at the cost of re-entering passwords per session), by avoiding shared server connections in multi-user server mode where untrusted users hold accounts, and by trimming the set of authenticated pgAdmin users; also review the pgAdmin config DB for cross-owned adhoc/clone rows and rotate any database passwords that may have been exposed to non-owners. These workarounds trade convenience (saved credentials, connection sharing) for containment and do not fully replace the patch.
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 is the dominant web/desktop administration client for PostgreSQL, storing per-user server definitions (including optionally saved connection and SSH tunnel passwords) in its own configuration database. The Workspaces feature added in 9.0 exposes an adhoc-connect flow that, given an existing server id, calls Server.clone() to duplicate the row. The root cause maps to CWE-522 (Insufficiently Protected Credentials): clone() performed a naive column-by-column copy that carried over ownership fields (user_id, shared, shared_username) and secret material (password, save_password, tunnel_password) from the source row, and pgAdmin persisted the clone before any connection attempt. Because the copy did not re-scope those fields to the requesting user, a non-owner ended up owning a private row bearing someone else's secrets. The fix explicitly nulls the credential fields and forces ownership/sharing fields to the calling user before commit; the same commit also hardens several tool socket endpoints (backup, restore, maintenance, import/export, psql/ERD sockets) with @permissions_required decorators.
Know when Pgadmin 4 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:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N
Authenticated non-owner (PR:L) over the network with low complexity; stolen credentials grant access to a separate database system, so Scope changes and C:H/I:H, with no availability impact.
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
Primary rating from Vendor (f86ef6dc-4d3a-42ad-8f28-e6d5547a5007).
CVSS VectorVendor: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
Lifecycle Timeline
2DescriptionCVE.org
/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_username, and the stored credential fields password, save_password, and tunnel_password. When a non-owner triggered an adhoc connect against another user's (in practice, typically an administrator's) shared server, the clone inherited that user's ownership, shared flag, and stored database credentials verbatim. pgAdmin persisted this cross-tenant, credential-bearing server row before the connection was even attempted, so it survived even when the connection subsequently failed. The non-owner could then open the newly-owned clone and pgAdmin would connect using the source user's stored database password on the non-owner's behalf, granting the non-owner use of database credentials -- and whatever database privileges they confer -- that were never their own.
Fix forces the cloned adhoc record's ownership fields (user_id, shared, shared_username) and stored credential fields (password, save_password, tunnel_password) to belong to the calling user and be cleared/private before committing, regardless of the source server's ownership, sharing state, or stored credentials. A regression test asserts that an adhoc connect triggered by a non-owner against another user's shared server persists a row owned by the caller, not shared, and without the source's stored credentials.
This issue affects pgAdmin 4: from 9.0 before 9.17.
Executive ViewAI
pgAdmin 4 versions 9.0-9.16 contain a critical vulnerability allowing authenticated users to steal database credentials and SSH tunnel passwords from other users' shared server connections. No public exploit has been identified at time of analysis, but administrators using shared connections face immediate risk of credential theft and unauthorized database access.
Apply vendor patch.
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
Remote unauthenticated access to two SQL Editor endpoints in pgAdmin 4 server-mode deployments (versions 6.9 through 9.1
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
Remote SQL injection via prompt injection in pgAdmin 4 versions 9.13 through 9.15 allows attackers who can write content
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_
Authorization bypass and privilege escalation in pgAdmin 4 server mode allows authenticated users to access other users'
pgAdmin <= 8.5 is affected by XSS vulnerability in /settings/store API response json payload. Rated medium severity (CVS
Same weakness CWE-522 – Insufficiently Protected Credentials
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Critical| Product | Status |
|---|---|
| SUSE Linux Enterprise Desktop 15 SP7 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Not-Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Not-Affected |
| SUSE Manager Proxy 4.3 | Not-Affected |
| SUSE Manager Proxy LTS 4.3 | Not-Affected |
| SUSE Manager Retail Branch Server 4.3 | Not-Affected |
| SUSE Manager Retail Branch Server LTS 4.3 | Not-Affected |
| SUSE Manager Server 4.3 | Not-Affected |
| SUSE Manager Server LTS 4.3 | Not-Affected |
| SUSE CaaS Platform 4.0 | Not-Affected |
| SUSE Enterprise Storage 6 | Not-Affected |
| SUSE Enterprise Storage 7 | Not-Affected |
| SUSE Enterprise Storage 7.1 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 SP6 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP1 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP1-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP1-LTSS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP1 | Not-Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP3 | Not-Affected |
| SUSE Linux Enterprise Real Time 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Real Time 15 SP3 | Not-Affected |
| SUSE Linux Enterprise Real Time 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP1 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP1-BCL | Not-Affected |
| SUSE Linux Enterprise Server 15 SP1-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP2-BCL | Not-Affected |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP3 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP3-BCL | Not-Affected |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP1 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Not-Affected |
| SUSE Manager Proxy 4.0 | Not-Affected |
| SUSE Manager Proxy 4.1 | Not-Affected |
| SUSE Manager Proxy 4.2 | Not-Affected |
| SUSE Manager Retail Branch Server 4.0 | Not-Affected |
| SUSE Manager Retail Branch Server 4.1 | Not-Affected |
| SUSE Manager Retail Branch Server 4.2 | Not-Affected |
| SUSE Manager Server 4.0 | Not-Affected |
| SUSE Manager Server 4.1 | Not-Affected |
| SUSE Manager Server 4.2 | Not-Affected |
| openSUSE Leap 15.3 | Not-Affected |
| openSUSE Leap 15.4 | Not-Affected |
| openSUSE Leap 15.5 | Not-Affected |
| openSUSE Leap 15.6 | Not-Affected |
EUVD-2026-51562
GHSA-p547-rjmg-jqr4
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB