Skip to main content

pgAdmin 4 CVE-2026-116252

| EUVDEUVD-2026-114393 HIGH
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') (CWE-88)
2026-10-30 f86ef6dc-4d3a-42ad-8f28-e6d5547a5007 GHSA-c8mg-g5cp-g9w7
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
    Obtain CREATEDB role on target server
  2. Delivery
    Create database named as libpq connection string
  3. Exploit
    Victim opens database and refreshes materialized view
  4. Execution
    pgAdmin's psql redirected to attacker-controlled host
  5. Impact
    Saved server password disclosed to attacker

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Argument sanitization
Exploitation Conditions

Requires an authenticated role (PR:L) holding the CREATEDB privilege on the target PostgreSQL server, used to create a database whose name is a valid libpq connection string - specifically one containing '=' or formatted as a postgresql:// URI - so libpq treats it as connection keywords overriding host and port. The high-impact credential disclosure further requires a pgAdmin user who has a saved server password to navigate into that database and trigger a materialized view refresh, which invokes psql with the malicious name as --dbname. LIMITING FACTORS: exploitation is gated on untrusted roles being granted CREATEDB (not default for ordinary users), on a victim pgAdmin session with a stored password performing the refresh, and on pgAdmin 4 versions before 9.19; the SSRF-style 'connect to arbitrary addresses' effect does not itself require the victim's saved password. The only complete fix is updating to 9.19, which wraps the name via database_conninfo().

Impact

This is a genuine but conditional credential-exposure flaw (CWE-88 argument injection) in pgAdmin 4, not a drive-by remote code execution. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N) scores 7.1 and reflects network reach, low complexity, and pure confidentiality impact with no integrity or availability effect. The PR:L is the key limiter: an attacker must already hold a role with the CREATEDB privilege on the target PostgreSQL server to plant a database whose name is a libpq connection string. The description also makes clear that the high-value payoff - theft of a connecting user's saved server password - depends on a separate pgAdmin user actually refreshing a materialized view inside that malicious database, so meaningful victim interaction is involved even though the input vector lists UI:N (I diverge to UI:A/UI:R in my own assessment below). No CISA KEV listing and no EPSS score were provided, so there is no signal of active or probable widespread exploitation; the vuln.today decision label is 'this_week', indicating prompt-but-not-emergency remediation. No public exploit was identified - the only references are the vendor fix commit and the GitHub issue, which are not exploit code. Net: real priority for environments where untrusted roles hold CREATEDB, lower priority where database creation is tightly restricted.

Exploit ScenarioDerived

An attacker holding a CREATEDB-capable PostgreSQL role creates a database whose name is a libpq connection string (e.g. containing '=' or a postgresql:// URI) pointing to a host and port they control. When a pgAdmin user who has saved their server password later refreshes a materialized view within that database, pgAdmin invokes psql with the crafted name as --dbname, libpq interprets it as a full connection string, and the user's saved password is transmitted to the attacker's endpoint; the pgAdmin host can likewise be coerced into connecting to arbitrary addresses. No public exploit was identified at time of analysis - only the fix commit and issue report are referenced.

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

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

Alert me

AnalysisAIv1 – Oct 30, 2026

Credential disclosure in pgAdmin 4 before 9.19 allows a database name controlled by a CREATEDB role to be interpreted by libpq as a connection string, redirecting the psql refresh process to an attacker-chosen host and exposing the connecting user's saved server password. Exploitation is conditional: it requires an authenticated role with CREATEDB, a pgAdmin user with a stored password who navigates into the malicious database and triggers a materialized view refresh, and an affected version before 9.19. No public exploit was identified at time of analysis, and the same issue class was previously fixed for Backup, Restore, Maintenance and Import/Export Data under CVE-2026-86862.

RemediationAI

Vendor-released patch: upgrade to pgAdmin 4 9.19 or later. The fix routes the database name through database_conninfo() so libpq treats it strictly as a database name; the commit is https://github.com/pgadmin-org/pgadmin4/commit/a1a43e8c28cf10cec73df0c476905562d19af483 and the tracking issue is https://github.com/pgadmin-org/pgadmin4/issues/10645. The available data does not document a complete workaround, and the independent assessment states that updating to 9.19 is the only complete fix. Because exploitation is gated on a role with CREATEDB and a victim refresh with a saved password, limiting CREATEDB to trusted roles reduces exposure but does not replace the patch.

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

The root cause is CWE-88 argument injection in pgAdmin 4's materialized view refresh path. pgAdmin passed the target database's name unchanged to psql's --dbname argument. libpq treats a --dbname value containing '=' or a postgresql:// URI as a full connection string, whose keywords override the host, port and other settings pgAdmin had supplied. A role with CREATEDB can create a database whose name is such a string; when a pgAdmin user with a saved server password triggers a refresh, the psql process that pgAdmin starts connects to the creator's chosen endpoint and presents that saved password. The pgAdmin host can also be made to open connections to arbitrary addresses. The fix imports database_conninfo() and wraps data['database'] with it, so libpq treats the value strictly as a database name; the source evidence is commit a1a43e8c28cf10cec73df0c476905562d19af483. The independent assessment notes that the high-impact credential disclosure requires the victim refresh, while the arbitrary-address connection effect does not itself require the victim's saved password.

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:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.7 MEDIUM

Attacker needs CREATEDB privilege (PR:L) and a victim must trigger the refresh (UI:R); impact is disclosure of a saved password only, so C:H with I:N/A:N and scope unchanged.

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

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

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

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
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's materialized view refresh passed the target database's name to psql's --dbname argument unchanged. libpq treats a --dbname value containing "=" (or a postgresql:// URI) as a full connection string, whose keywords override the host, port and other settings pgAdmin had supplied. A database whose name is such a string, which any role with CREATEDB can create, therefore redirected the psql process pgAdmin starts for the refresh to a host and port of the creator's choosing, and the connecting user's saved server password was presented to that endpoint. It also let the pgAdmin host be made to open connections to arbitrary addresses.

The same weakness was fixed for Backup, Restore, Maintenance and Import/Export Data in earlier releases (CVE-2026-86862); the materialized view refresh was the remaining caller. The fix routes the name through the same database_conninfo() helper, so libpq treats it strictly as a database name.

This issue affects pgAdmin 4: before 9.19.

Executive ViewAI

Why It Matters

CVE-2026-116252 is a high-severity credential disclosure vulnerability in pgAdmin 4 (versions before 9.19) that could allow an attacker with a CREATEDB role to redirect database connections and steal stored passwords. This affects organizations using pgAdmin for PostgreSQL administration, particularly those with multiple roles and saved credentials. Leadership should prioritize remediation to prevent unauthorized access to sensitive database environments.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include restricting CREATEDB privileges to trusted roles, avoiding interaction with untrusted databases in pgAdmin, clearing saved passwords, and monitoring for suspicious connection redirects.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
High
de facto standard GUI administration tool for PostgreSQL, very widely deployed
Data Quality
3 sources
Confidence: Low

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.3%
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