Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as pgAdmin server-mode user
-
DeliveryUpload executable to writable shared storage
-
ExploitPoint binary-path preference at uploaded file
-
ExecutionInvoke pg_dump/psql to trigger execution
-
ImpactArbitrary 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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 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
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
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.
Primary rating from Vendor (f86ef6dc-4d3a-42ad-8f28-e6d5547a5007).
CVSS VectorVendor: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
Lifecycle Timeline
2DescriptionCVE.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.
Articles & Coverage 1
Executive ViewAI
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.
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
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
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
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
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_
Command injection in pgAdmin 4 before 9.19 lets an authenticated, low-privileged database user execute arbitrary operati
pgAdmin <= 8.5 is affected by XSS vulnerability in /settings/store API response json payload. Rated medium severity (CVS
Cross-tenant credential theft in pgAdmin 4 (9.0 through 9.16) lets an authenticated non-owner user hijack another user's
pgAdmin <= 9.1 is affected by a security vulnerability with Cross-Site Scripting(XSS). Rated critical severity (CVSS 9.1
EUVD-2026-114384
GHSA-7pw4-4xp2-3398
NVD
CVE.org
EPSS
Exploit-DB