CVE-2025-12763
Python vulnerability analysis and mitigation

Overview

CVE-2025-12763 is a command injection vulnerability (CWE-78) in pgAdmin 4 affecting Windows systems, caused by the use of shell=True when spawning background processes during backup and restore operations. All pgAdmin 4 versions up to and including 9.9 are affected; version 9.10 contains the fix. The vulnerability was published on November 13, 2025, with the GitHub Advisory (GHSA-rm79-x4g6-hvg5) reviewed the same day. It carries a CVSS v3.1 base score of 6.8 (Moderate) per the GitHub Advisory, or 8.8 (High) per an alternate scoring that assumes no privileges required (GitHub Advisory, Feedly).

Technical details

The root cause is the use of Python's subprocess with shell=True when pgAdmin 4 creates background processes for backup and restore operations on Windows platforms (CWE-78: OS Command Injection). When shell=True is set, the Windows command interpreter (cmd.exe) is invoked to parse the command string, allowing shell metacharacters embedded in attacker-controlled file path inputs to break out of the intended command and inject arbitrary OS commands. Exploitation requires the attacker to supply a specially crafted file path (e.g., a backup destination or restore source path) containing shell command delimiters. The fix, tracked in GitHub issue #9323 and commit e374edc, removes the use of shell=True for Windows background process creation (GitHub Issue, GitHub Advisory).

Impact

Successful exploitation allows an authenticated attacker to execute arbitrary operating system commands on the Windows host running pgAdmin 4, with the privileges of the pgAdmin process. This results in high confidentiality, integrity, and availability impact — an attacker could exfiltrate sensitive data (including database credentials and contents), modify or destroy files, install malware, or pivot to other systems on the network. The scope is limited to the host running pgAdmin 4, but the database server it manages may also be at risk if credentials are exposed (GitHub Advisory, Feedly).

Exploitation steps

  1. Gain admin access: Obtain pgAdmin 4 administrator credentials through phishing, credential stuffing, or insider access, as high-privilege authentication is required.
  2. Navigate to backup/restore: Log into the pgAdmin 4 web interface and navigate to the backup or restore functionality (e.g., Tools > Backup or Tools > Restore).
  3. Craft malicious file path: In the file path input field (e.g., backup filename or restore source path), enter a specially crafted value containing Windows shell command delimiters, such as C:\backup\file.sql & calc.exe or C:\backup\file.sql & powershell -c "<payload>".
  4. Trigger the operation: Initiate the backup or restore operation. pgAdmin 4 passes the file path to a subprocess spawned with shell=True, causing cmd.exe to interpret the injected command.
  5. Achieve code execution: The injected command executes on the Windows host with the privileges of the pgAdmin process, enabling reverse shell establishment, data exfiltration, or further lateral movement (GitHub Issue, GitHub Advisory).

Indicators of compromise

  • Logs: pgAdmin application logs showing backup or restore operations initiated with unusual file path values containing shell metacharacters (&, |, ;, >, <, backticks).
  • Process: Unexpected child processes spawned by the pgAdmin Python process on Windows (e.g., cmd.exe, powershell.exe, calc.exe, net.exe, whoami.exe) that are not typical database utility processes (pg_dump.exe, pg_restore.exe).
  • Network: Outbound network connections from the pgAdmin host to unexpected external IP addresses or domains, particularly from python.exe or cmd.exe processes.
  • File System: Unexpected files created in the pgAdmin installation directory, temp directories, or user profile directories; new scheduled tasks or registry run keys added around the time of backup/restore operations.
  • Windows Event Logs: Event ID 4688 (Process Creation) entries showing cmd.exe or powershell.exe spawned as children of the pgAdmin Python process with suspicious command-line arguments.

Mitigation and workarounds

Upgrade pgAdmin 4 to version 9.10 or later, which removes the use of shell=True for Windows background process creation and resolves this vulnerability (GitHub Advisory, pgAdmin Release). As an interim workaround, restrict pgAdmin admin-level access to only trusted users and implement network-level controls (firewall rules, VPN requirements) to limit who can reach the pgAdmin interface. Avoid exposing pgAdmin directly to the internet, particularly on Windows systems running vulnerable versions.

Community reactions

The vulnerability was noted in security community feeds and vulnerability tracking platforms shortly after disclosure on November 13, 2025. A technical blog post analyzing remote code execution via this vulnerability in pgAdmin for Windows was published (RCE Blog). SecurityOnline.info covered the broader set of pgAdmin flaws disclosed around the same time, including CVE-2025-12762 (SecurityOnline). The Qualys scanner added detection (ID 385955) and Tenable also added pipeline coverage, indicating broad security tooling adoption of the vulnerability signature.

Additional resources


SourceThis report was generated using AI

Related Python vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-70492HIGH8.7
  • Python logoPython
  • cpe:2.3:a:openwebui:open_webui
NoYesAug 04, 2026
CVE-2026-70494HIGH8.1
  • Python logoPython
  • cpe:2.3:a:openwebui:open_webui
NoYesAug 04, 2026
CVE-2026-70493MEDIUM6.5
  • Python logoPython
  • open-webui
NoYesAug 04, 2026
CVE-2026-70491MEDIUM6.5
  • Python logoPython
  • cpe:2.3:a:openwebui:open_webui
NoYesAug 04, 2026
CVE-2026-70490MEDIUM6.3
  • Python logoPython
  • cpe:2.3:a:openwebui:open_webui
NoYesAug 04, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management