Skip to main content

pgAdmin 4 CVE-2026-17349

| EUVDEUVD-2026-51562 CRITICAL
Insufficiently Protected Credentials (CWE-522)
2026-07-31 f86ef6dc-4d3a-42ad-8f28-e6d5547a5007 GHSA-p547-rjmg-jqr4
9.3
CVSS 4.0 · Vendor: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
Share

Severity by source

Vendor (f86ef6dc-4d3a-42ad-8f28-e6d5547a5007) PRIMARY
9.3 CRITICAL
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
9.6 CRITICAL

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N
SUSE
9.6 CRITICAL
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
Red Hat
9.6 CRITICAL
qualitative

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

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

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

4
Patch available
Jul 31, 2026 - 17:01 EUVD
Source Code Evidence Fetched
Jul 31, 2026 - 16:31 vuln.today
Analysis Generated
Jul 31, 2026 - 16:31 vuln.today
CVE Published
Jul 31, 2026 - 16:16 cve.org
CRITICAL 9.3

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

AnalysisAI

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.

Technical ContextAI

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.

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.

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-2026-12046 CRITICAL
9.5 Jun 18

Remote unauthenticated access to two SQL Editor endpoints in pgAdmin 4 server-mode deployments (versions 6.9 through 9.1

CVE-2026-12045 CRITICAL
9.4 Jun 18

Remote SQL injection via prompt injection in pgAdmin 4 versions 9.13 through 9.15 allows attackers who can write content

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
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-7813 CRITICAL
9.4 May 11

Authorization bypass and privilege escalation in pgAdmin 4 server mode allows authenticated users to access other users'

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-12048 CRITICAL
9.3 Jun 18

Stored cross-site scripting in pgAdmin 4 versions 6.0 through 9.15 allows a malicious or attacker-influenced PostgreSQL

Vendor 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

Share

CVE-2026-17349 vulnerability details – vuln.today

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