Description
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.
Published: 2026-05-11
Score: 8.7 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

An SQL injection flaw in the Maintenance Tool of pgAdmin 4 allows an authenticated user who has the tools_maintenance permission to inject malicious SQL into the VACUUM/ANALYZE/REINDEX command. The injected statements can execute arbitrary PostgreSQL commands and, by using COPY … TO PROGRAM, can chain into operating‑system command execution on the database host, thereby compromising confidentiality, integrity and availability of the underlying system.

Affected Systems

Legacy installations of pgAdmin 4 released before version 9.15 are affected. The flaw resides in the four user‑supplied JSON fields buffer_usage_limit, vacuum_parallel, vacuum_index_cleanup, and reindex_tablespace which are concatenated directly into the SQL command without validation.

Risk and Exploitability

The CVSS score of 8.7 indicates high severity. No EPSS score is published, but the vulnerability requires valid application credentials and a role with maintenance privileges, so the attack surface is limited to users with those permissions. No documented exploitation in the wild has been reported, although the issue was publicly disclosed. The likely attack vector is the pgAdmin web interface, where an authenticated user with maintenance privileges can trigger malicious commands directly, bypassing PostgreSQL client restrictions. The capability to run arbitrary OS commands via COPY TO PROGRAM exacerbates the impact, enabling full server compromise when the database host is not hardened.

Generated by OpenCVE AI on May 11, 2026 at 17:09 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update pgAdmin 4 to version 9.15 or later to apply the server‑side allow‑listing fix
  • Limit the tools_maintenance role to trusted users and review permissions in pgAdmin to ensure only necessary accounts have maintenance access
  • Configure PostgreSQL to disable or heavily restrict the COPY TO PROGRAM feature or restrict it to a dedicated, non‑privileged superuser

Generated by OpenCVE AI on May 11, 2026 at 17:09 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 11 May 2026 17:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-89
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Mon, 11 May 2026 15:30:00 +0000

Type Values Removed Values Added
Description 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.
Title pgAdmin 4: SQL injection in Maintenance tool option values leading to remote code execution
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 8.7, 'vector': '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'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: PostgreSQL

Published:

Updated: 2026-05-11T16:09:33.147Z

Reserved: 2026-05-04T21:26:57.386Z

Link: CVE-2026-7815

cve-icon Vulnrichment

Updated: 2026-05-11T16:09:18.906Z

cve-icon NVD

Status : Received

Published: 2026-05-11T16:17:37.873

Modified: 2026-05-11T17:16:34.877

Link: CVE-2026-7815

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-11T17:15:40Z

Weaknesses