Skip to main content

pgAdmin 4 CVE-2026-116243

| EUVDEUVD-2026-114384 HIGH
Untrusted Search Path (CWE-426)
2026-10-30 f86ef6dc-4d3a-42ad-8f28-e6d5547a5007 GHSA-7pw4-4xp2-3398
7.7
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 pgAdmin server-mode user
  2. Delivery
    Upload executable to writable shared storage
  3. Exploit
    Point binary-path preference at uploaded file
  4. Execution
    Invoke pg_dump/psql to trigger execution
  5. Impact
    Arbitrary code execution as pgAdmin OS account

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V13 - Configuration Search path verification
Exploitation Conditions

Requires pgAdmin running in server (multi-user web) mode with at least one non-restricted SHARED_STORAGE directory that ordinary users can upload files to; the attacker must have an authenticated pgAdmin account (PR:L) and be able to set their own utility binary-path preference. The decisive limiting factor is the platform: the file must be executable by name, which the vendor states occurs in Windows server mode, whereas on POSIX files created through pgAdmin are not executable and the flaw is not exploitable there. A related configuration risk noted in the fix is that an empty STORAGE_DIR exposes the whole filesystem, defeating the guard entirely. Exploitation does not require interaction from any other user.

Impact

This is a genuine arbitrary-code-execution flaw (CWE-426, untrusted search path) with a CVSS 4.0 base of 7.7, but the real-world risk is moderate rather than urgent because every key metric points to gated, non-automatable exploitation. The vector (AV:N/AC:H/AT:P/PR:L/UI:N) shows it is reachable over the network through the pgAdmin web UI, yet it requires an already-authenticated pgAdmin account (PR:L), a specific attack requirement (AT:P) and elevated complexity (AC:H) - namely server (multi-user web) mode, a configured SHARED_STORAGE directory writable by ordinary users, and a platform that executes a file by name. The vendor explicitly limits practical exploitation to Windows server mode, since on POSIX files created through pgAdmin are not executable. No EPSS score was supplied, the CVE is not in CISA KEV, and no public exploit was identified - the only references are the fix commit and the issue tracker, so there is no evidence of active or widespread exploitation. The vuln.today decision label is this_week, consistent with a serious-but-conditional RCE that should be patched promptly but is not an emergency. In short: high technical impact (full compromise as the pgAdmin OS account) offset by authentication, non-default configuration and platform prerequisites, making this a targeted-opportunity issue rather than a mass-exploitable one.

Exploit ScenarioDerived

An authenticated low-privilege user of a Windows pgAdmin server-mode deployment uploads an executable file into a non-restricted SHARED_STORAGE directory, then sets their utility binary-path preference to point at that file. When pgAdmin invokes a tool such as pg_dump, pg_restore, pg_dumpall or psql, it runs the attacker's executable as the operating-system account running pgAdmin, yielding code execution on the host. No public exploit code is known; the referenced material is the vendor fix commit and issue, not a working PoC.

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

Authenticated users of pgAdmin 4 in server (multi-user web) mode can achieve arbitrary code execution as the operating-system account running pgAdmin by uploading an executable into a shared-storage directory and then pointing their own utility binary-path preference at it. The flaw affects releases before 9.19: the preference validator refused paths under the per-user STORAGE_DIR but never checked the SHARED_STORAGE directories that ordinary users can write to, so pg_dump, pg_restore, pg_dumpall or psql were launched from an attacker-controlled file. Practical exploitation is gated: the attacker needs a valid pgAdmin account and at least one non-restricted shared storage directory, and it is decisive on Windows server mode, where a file with an executable name runs, whereas on POSIX files created through pgAdmin are not executable - no public exploit was identified at time of analysis, and the CVSS 4.0 base of 7.7 (assessed as CVSS 3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H) reflects those prerequisites rather than a network-wide, unauthenticated attack.

RemediationAI

Vendor-released patch: pgAdmin 4 9.19, which incorporates upstream commit 9e95d9a72155beb40d3735cadf6ae754f627cac7 and enforces the storage-directory check against every SHARED_STORAGE entry, with $DIR expansion, ".." collapsing, symlink resolution, case-insensitive-safe directory comparison and NUL rejection, applied to all binary-path resolution including the PSQL tool. Upgrade all server-mode installations to 9.19 or later; consult https://github.com/pgadmin-org/pgadmin4/commit/9e95d9a72155beb40d3735cadf6ae754f627cac7 and https://github.com/pgadmin-org/pgadmin4/issues/10656 for the exact change set. If an immediate upgrade is not possible, the compensating control supported by the evidence is to remove or make restricted every non-restricted SHARED_STORAGE directory on server-mode instances so that users have no writable upload location from which a utility could be resolved - this costs users the shared-file capability, and restricted-access shares remain governed by the pre-existing storage restrictions. Additionally, ensure STORAGE_DIR is not left empty: the fix's configuration warning states that an empty STORAGE_DIR exposes the whole filesystem to users in server mode and that the CWE-426 guard cannot protect that configuration, so pin a concrete per-user storage path. Instances limited to trusted administrators, or running in desktop mode, are outside the exploitation path described by the vendor.

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 is a Python/Flask web application that shells out to PostgreSQL client utilities (pg_dump, pg_restore, pg_dumpall and psql) using a binary path the user configures in their preferences. This is a classic CWE-426 untrusted search path defect: the application resolves and executes an external program through a path it does not adequately constrain. In server mode the validator at the /misc/validate_binary_path route only compared the supplied utility_path against config.STORAGE_DIR (the per-user storage area), rejecting exact matches and parent-directory containment. Because files can be uploaded into SHARED_STORAGE directories by ordinary users, that directory class was an equally untrusted, user-writable location from which binaries could be resolved; the guard simply never covered it. The triggering mechanism is therefore a path-validation gap, not a memory-safety or timing condition - a crafted preference value is submitted and later consumed when a utility is executed. The upstream fix (commit 9e95d9a72155beb40d3735cadf6ae754f627cac7) replaces the inline STORAGE_DIR check with a shared is_reserved_storage_path() helper that checks every SHARED_STORAGE directory, expands $DIR, collapses ".." segments, resolves symbolic links, compares directories so that alternate spellings on a case-insensitive filesystem cannot bypass the check, refuses paths containing a NUL byte, and is applied everywhere binary paths are resolved - including the PSQL tool, whose psql existence check now routes through does_utility_exist(). Regression tests in misc/tests cover the route itself, ordinary paths, and the '$DIR/../..' escape case. A config comment added by the fix warns that an empty STORAGE_DIR exposes the entire filesystem to users in server mode, which would defeat the guard regardless of the version installed.

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.7 HIGH
CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Reachable via the web UI (AV:N) but needs an authenticated user (PR:L) plus server mode, writable shared storage and a Windows host (AC:H); code execution as the pgAdmin account gives full C/I/A.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/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
High
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
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.7

DescriptionCVE.org

pgAdmin 4 runs pg_dump, pg_restore, pg_dumpall and psql from the binary path a user sets in their preferences. In server mode the binary path was refused only when it lay under the per-user storage directory (STORAGE_DIR), not under a SHARED_STORAGE directory, which ordinary users can upload files to. A user could therefore upload an executable to shared storage, point their binary path at it, and have pgAdmin run it as the operating-system account running pgAdmin. On POSIX, files created through pgAdmin are not executable, so this is exploitable where any file with an executable name can run, such as Windows server mode.

The fix checks the binary path against every SHARED_STORAGE directory as well, after expanding $DIR, collapsing ".." and resolving symbolic links, compares directories in a way a different spelling on a case-insensitive filesystem cannot bypass, refuses a path containing a NUL, and enforces the check wherever binary paths are resolved, including for the PSQL tool.

This issue affects pgAdmin 4: before 9.19.

Executive ViewAI

Why It Matters

CVE-2026-116243 in pgAdmin 4 (versions before 9.19) allows authenticated users in server mode, particularly on Windows, to execute arbitrary code as the pgAdmin service account by uploading a malicious binary and manipulating their utility path preference. This poses a significant risk to organizations using pgAdmin as a multi-user web application, potentially enabling attackers to compromise the database management host and pivot to sensitive data or systems.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include restricting shared storage directories to read-only for non-admin users, auditing and monitoring pgAdmin user activities for unauthorized binary path changes, and deploying application control or endpoint detection to block execution of untrusted executables from pgAdmin storage locations.

Threat Intelligence Overview

EPSS Score
0.3%
Top 75% exploitable
Prevalence
High
pgAdmin 4 is the standard, widely deployed PostgreSQL administration tool
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

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
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