Skip to main content
VulnerabilityPublished

CVE-2026-17349: pgAdmin 4 · Insecure Direct Object Reference

Affects pgAdmin 4Source CVE Database V5

0
Compare

Not known to be exploited · CVSS 9.6 Critical : upgrade to 9.17 as a priority.

Data as of 29 Oct 2026, 19:04 UTC

CVSS 3.1 base score
9.6Critical
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.3% chance of exploitation in 30 days – higher than 33% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
Patch
Available – fixed in 9.17
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 31 Jul 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponized: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 29 Oct 2026.

What to do

Upgrade pgAdmin 4 to 9.17.

Affected software

ProductAffectedFixed in
pgadmin.orgpgAdmin 4Affected
  • >=9.0 <9.17
Fixed in
  • 9.17
GitHubpgAdmin 4pkg:github/pgAdmin 4Other threatsAffected
  • >=9.0 <9.17
Fixed in
  • 9.17

Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.

AI-suggested

The vendor has described a fix that forces cloned adhoc server records to belong to the calling user with cleared stored credentials before saving, preventing unauthorized credential inheritance. Users of affected versions (9.0 through before 9.17) should monitor pgAdmin.org for an official patch or update to a fixed version once released. Until then, restrict adhoc connect permissions to trusted users only.

Description

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

References

Community reviews

Loading reviews…