Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to pgAdmin web UI
-
DeliveryCreate symlink in storage directory
-
ExploitUpload malicious content via File Manager
-
ExecutionpgAdmin writes through symlink to target file
-
PersistOverwrite critical system or config files
-
ImpactTrigger execution for persistence or escalation
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling UNIX symlink resolution
|
| Exploitation Conditions | Requires authenticated access to pgAdmin 4 with a valid user account having File Manager permissions. The attacker must have the ability to create files and symbolic links within their allocated pgAdmin storage directory, which is standard functionality for authenticated users. Exploitation targets pgAdmin 4 deployments before version 9.15 running on UNIX-like operating systems where symbolic links are supported (Linux, BSD, macOS). Windows deployments may have different behavior with junction points and symlinks depending on filesystem and permissions. The pgAdmin process must have write permissions to the symlink target location for successful exploitation, meaning impact is bounded by the process's effective user privileges. No special network position, user interaction, or non-default configuration is required beyond basic authenticated access to the File Manager feature. Attack complexity is low (AC:L) because creating symlinks is a standard filesystem operation available to authenticated users. |
| Impact | CVSS 8.1 (High severity) reflects network-accessible attack with low complexity requiring only low-privileged authentication. The AV:N/AC:L/PR:L/UI:N vector indicates any authenticated pgAdmin user can exploit this remotely without special conditions. Impact is limited to Integrity and Availability (I:H/A:H) with no direct Confidentiality impact (C:N), suggesting file overwrites rather than reads. However, overwriting configuration files or executables can lead to code execution, making the real-world impact potentially more severe. EPSS data not provided, but the technical barrier is low for authenticated insiders. No CISA KEV listing indicates no confirmed active exploitation in the wild. The PostgreSQL project published detailed remediation information including the exact vulnerable code patterns and fix implementation on GitHub issue #9902, which serves as a precise exploit blueprint. Primary risk is to organizations with untrusted authenticated pgAdmin users (shared hosting, multi-tenant environments, or compromised credentials). Single-administrator deployments face lower risk unless credentials are compromised. The S:U (unchanged scope) means exploitation is contained to pgAdmin's security context, but pgAdmin typically runs with database administrator privileges, making file system writes highly dangerous. Priority should be HIGH for multi-user pgAdmin deployments and MEDIUM for single-admin instances with strong credential controls. |
| Exploit ScenarioDerived | An authenticated user with valid pgAdmin credentials logs into the web interface and navigates to their storage directory in the File Manager. They create a symbolic link named 'config.txt' pointing to /opt/pgadmin/config_system.py or another critical application file. Through the File Manager upload or write functionality, they trigger pgAdmin to write malicious content to 'config.txt'. The access control check validates the symlink path as within the user's authorized directory, but the actual write operation follows the symlink and overwrites the target system configuration file. The attacker then triggers execution of the modified configuration to achieve persistence or privilege escalation. Given the detailed fix description in the public GitHub issue, constructing a working exploit requires only basic Python and filesystem knowledge. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 11, 2026
Symbolic link path traversal in pgAdmin 4 File Manager allows authenticated users to write arbitrary files on the server filesystem. Attackers with valid credentials can plant symlinks in their storage directory pointing outside it, bypassing access controls to overwrite critical system files or application configurations with pgAdmin process privileges. The vulnerability combines CWE-61 (symlink following) with a time-of-check-time-of-use race condition. Affects all pgAdmin 4 versions before 9.15. No active exploitation confirmed (not in CISA KEV), but exploit is straightforward for authenticated attackers given the detailed fix description published by PostgreSQL project.
RemediationAI
Upgrade to pgAdmin 4 version 9.15 or later, which implements comprehensive fixes for the symlink traversal vulnerability. The patch replaces os.path.abspath with os.path.realpath in check_access_permission for both source and destination paths, ensuring symbolic links are fully resolved before access control checks. Additionally, a new _open_upload_target helper opens files with O_NOFOLLOW flag to prevent following symlinks at the leaf component, closing the TOCTOU window between check and open operations. File permissions are hardened from 0o644 (world-readable) to 0o600 (owner-only). Refer to https://github.com/pgadmin-org/pgadmin4/issues/9902 for complete technical details. If immediate upgrade is not possible, compensating controls include restricting pgAdmin access to trusted administrators only, running pgAdmin with minimal filesystem privileges through OS-level mandatory access controls (SELinux, AppArmor), and monitoring pgAdmin storage directories for unexpected symlinks. Note that filesystem permission restrictions significantly reduce pgAdmin's ability to manage PostgreSQL files. Disabling the File Manager feature entirely eliminates attack surface but removes legitimate administrative functionality for file-based operations.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in pypi, 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 the web-based administration platform for PostgreSQL databases. The vulnerability exists in the File Manager component's access control mechanism. The flaw stems from using os.path.abspath() for permission checks, which normalizes paths by resolving parent directory references (..) but does not resolve symbolic links. Python's os.path.abspath canonicalizes relative paths but treats symlinks as opaque filenames. In contrast, the kernel's file write operations follow symbolic links by default. This creates a classic TOCTOU (time-of-check-time-of-use) race: the security check validates one path while the actual write operation targets a different resolved path. An attacker exploits this by creating a symlink within their authorized storage directory that points to sensitive files outside it (e.g., /etc/passwd, application config files, or other users' data). The check_access_permission function validates the symlink path itself as being within bounds, but the subsequent write follows the link to its target, bypassing the containment check. This is a classic example of CWE-61 (UNIX Symbolic Link Following) combined with CWE-22 (Path Traversal).
Know when Pgadmin 4 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:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
Primary rating from Vendor (PostgreSQL).
CVSS VectorVendor: PostgreSQL
Lifecycle Timeline
3DescriptionCVE.org
Symbolic-link path traversal (CWE-61, CWE-22) in pgAdmin 4 File Manager.
check_access_permission used os.path.abspath, which resolves '..' but does not resolve symbolic links, while the subsequent kernel write follows symlinks. An authenticated user could plant a symbolic link inside their own storage directory pointing outside it and induce pgAdmin to write to any path reachable by the pgAdmin process.
Fix switches the access check to os.path.realpath for both source and destination, and adds an _open_upload_target helper that opens the target with O_NOFOLLOW (mode 0o600) to close the leaf-component TOCTOU between the access check and the open. File mode is hardened from 0o644 to 0o600.
This issue affects pgAdmin 4: before 9.15.
Executive ViewAI
pgAdmin 4 versions before 9.15 contain a critical file write vulnerability that allows authenticated users to overwrite arbitrary files with application-level privileges, potentially compromising database configurations, credentials, and system integrity. Organizations running pgAdmin 4 must immediately audit user access and restrict administrative credentials until patching is possible, as the attack requires only valid login credentials and exploits a fundamental flaw in file handling.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Disable File Manager feature entirely via pgAdmin configuration if not operationally required; (2) Restrict File Manager access to named administrative accounts only, removing all other user permissions; (3) Run pgAdmin process under a dedicated unprivileged system account with minimal filesystem write permissions; (4) Monitor filesystem for unauthorized symlink creation in pgAdmin storage directories; (5) Implement application-level input validation and sanitization for file paths via pgAdmin authentication proxy if available; (6) Segment pgAdmin network access and limit to trusted administrative networks only.
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
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
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
Remote unauthenticated access to two SQL Editor endpoints in pgAdmin 4 server-mode deployments (versions 6.9 through 9.1
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
Remote SQL injection via prompt injection in pgAdmin 4 versions 9.13 through 9.15 allows attackers who can write content
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_
Authorization bypass and privilege escalation in pgAdmin 4 server mode allows authenticated users to access other users'
pgAdmin <= 8.5 is affected by XSS vulnerability in /settings/store API response json payload. Rated medium severity (CVS
Same weakness CWE-61 – UNIX Symbolic Link (Symlink) Following
View allSame technique Path Traversal
View allVendor StatusVendor
SUSE
Severity: High| Product | Status |
|---|---|
| SUSE Linux Enterprise Desktop 15 SP7 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP7 | Fixed |
| SUSE Linux Enterprise Module for Python 3 15 SP7 | Fixed |
| SUSE Linux Enterprise Server 15 SP7 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Fixed |
| SUSE Linux Enterprise Module for Python 3 15 SP6 | Fixed |
| SUSE Linux Enterprise Module for Server Applications 15 SP4 | Fixed |
| SUSE Linux Enterprise Module for Server Applications 15 SP5 | Fixed |
| SUSE Linux Enterprise Server 15 SP4 | Fixed |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Fixed |
| SUSE Linux Enterprise Server 15 SP5 | Fixed |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Fixed |
| SUSE Linux Enterprise Server 15 SP6 | Fixed |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Fixed |
| SUSE Manager Proxy 4.3 | Fixed |
| SUSE Manager Proxy LTS 4.3 | Fixed |
| SUSE Manager Retail Branch Server 4.3 | Fixed |
| SUSE Manager Retail Branch Server LTS 4.3 | Fixed |
| SUSE Manager Server 4.3 | Fixed |
| SUSE Manager Server LTS 4.3 | Fixed |
| SUSE CaaS Platform 4.0 | Fixed |
| SUSE Enterprise Storage 6 | Fixed |
| SUSE Enterprise Storage 7 | Fixed |
| SUSE Enterprise Storage 7.1 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP6 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP1 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP1-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP1-LTSS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | Fixed |
| SUSE Linux Enterprise Module for Server Applications 15 SP1 | Fixed |
| SUSE Linux Enterprise Module for Server Applications 15 SP2 | Fixed |
| SUSE Linux Enterprise Module for Server Applications 15 SP3 | Fixed |
| SUSE Linux Enterprise Real Time 15 SP2 | Fixed |
| SUSE Linux Enterprise Real Time 15 SP3 | Fixed |
| SUSE Linux Enterprise Real Time 15 SP4 | Fixed |
| SUSE Linux Enterprise Server 15 SP1 | Fixed |
| SUSE Linux Enterprise Server 15 SP1-BCL | Fixed |
| SUSE Linux Enterprise Server 15 SP1-LTSS | Fixed |
| SUSE Linux Enterprise Server 15 SP2 | Fixed |
| SUSE Linux Enterprise Server 15 SP2-BCL | Fixed |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Fixed |
| SUSE Linux Enterprise Server 15 SP3 | Fixed |
| SUSE Linux Enterprise Server 15 SP3-BCL | Fixed |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP1 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Fixed |
| SUSE Manager Proxy 4.0 | Fixed |
| SUSE Manager Proxy 4.1 | Fixed |
| SUSE Manager Proxy 4.2 | Fixed |
| SUSE Manager Retail Branch Server 4.0 | Fixed |
| SUSE Manager Retail Branch Server 4.1 | Fixed |
| SUSE Manager Retail Branch Server 4.2 | Fixed |
| SUSE Manager Server 4.0 | Fixed |
| SUSE Manager Server 4.1 | Fixed |
| SUSE Manager Server 4.2 | Fixed |
| openSUSE Leap 15.3 | Fixed |
| openSUSE Leap 15.4 | Fixed |
| openSUSE Leap 15.5 | Fixed |
EUVD-2026-29087
GHSA-hr4r-fwpv-c95j
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB