CVE-2025-2945 is a remote code execution vulnerability in pgAdmin 4 affecting versions prior to 9.2. The flaw is caused by unsafe handling of user-supplied POST parameters in the Query Tool and Cloud Deployment modules. Specifically, input supplied through the query_commited parameter on the Query Tool download endpoint and the high_availability parameter on the Cloud Deployment endpoint is passed to Python's eval() function without adequate sanitization or validation. An authenticated remote attacker can send crafted requests that cause attacker-controlled Python expressions to be evaluated by the server, resulting in arbitrary code execution in the context of the pgAdmin application.
Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
If you can’t patch tonight, do this now.
Patch, then assume compromise.
9 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos.
This is a standalone Python 3 proof-of-concept/operational exploit repository containing one executable script (CVE-2025-2945.py), a README, and a requests dependency declaration. It targets CVE-2025-2945 in pgAdmin 4 versions 8.10-9.1, fixed in 9.2. The script creates an HTTP requests session, obtains a CSRF token from the login page when present, authenticates to pgAdmin, and uses a registered database connection to initialize the Query Tool workflow. It then supplies a Python expression through the Query Tool's query_commited field, which vulnerable pgAdmin versions pass directly to eval() rather than safely coercing to a boolean. The primary impact is authenticated RCE as the pgAdmin service account. Command mode uses Python's __import__('os').system(), reverse-shell mode uses /bin/sh, mkfifo, and nc with /tmp/f, and raw mode permits arbitrary Python expressions. The tool accepts a dynamic operator-specified host and port, supports HTTP/HTTPS and optional TLS-verification bypass, includes an authorization confirmation prompt, and is not part of Metasploit, Nuclei, or another named exploitation framework. Documentation also identifies a second vulnerable high_availability parameter in the Cloud Deployment Google-provider path, although the supplied script's described primary workflow is Query Tool exploitation.
Repository is a small standalone Python exploit repo containing one main script (poc.py), a README, and license. The exploit targets CVE-2025-2945 in pgAdmin4 and is intended for authenticated RCE against versions described in the README as 8.10 through 9.1. The script is not part of a larger exploitation framework. Core exploit flow in poc.py: it first fingerprints the target version by requesting /login and parsing version markers from HTML/JS; then it harvests a CSRF token from the login page or fallback JavaScript resources; next it authenticates to pgAdmin via authenticate/login using supplied credentials; after authentication it appears to enumerate valid server/group IDs and initialize the SQL editor context before delivering a payload to the vulnerable /sqleditor/query_tool/download path described in the README. The exploit supports verbose logging, optional version-check bypass, configurable server-ID scan range, and SSL verification disablement. Main capability is authenticated arbitrary code execution on the pgAdmin host. The default operational payload is a reverse shell callback to an attacker-controlled host/port, with the callback parameters supplied on the command line. The script also supports a custom Python payload, making it more flexible than a pure proof-of-concept but still a standalone operational exploit rather than a framework-integrated weaponized module. Fingerprintable endpoints observed include /login, authenticate/login, several JavaScript paths used for CSRF token extraction, and the vulnerable /sqleditor/query_tool/download endpoint documented in the README. The README also includes example target URLs and a sample custom payload writing to /tmp/test.txt. Overall, this repository is a focused authenticated web exploit for pgAdmin4 RCE with built-in session handling, token extraction, target enumeration, and reverse-shell delivery.
This repository is primarily a collection of HackTheBox writeups, but it also contains real exploit automation in the `VariaType/` directory. The actionable exploit consists of one Bash orchestrator (`exploit_variatype.sh`) and four Python phase scripts. The exploit is not tied to a common framework like Metasploit; it is custom automation for a multi-stage Linux target compromise. Main exploit capabilities: (1) reconnaissance and extraction of credentials from an exposed `.git` repository on `portal.variatype.htb`; (2) login and LFI verification against `download.php`; (3) preparation of malicious font files and a crafted designspace document to exploit CVE-2025-66034 in fontTools varLib, causing arbitrary file write of a PHP webshell to `/var/www/portal.variatype.htb/public/files/shell.php`; (4) privilege escalation to user `steve` using a ZIP filename command injection payload associated with CVE-2024-25082, which appends an attacker SSH key into `/home/steve/.ssh/authorized_keys`; and (5) privilege escalation to root by abusing `sudo /usr/bin/python3 /opt/font-tools/install_validator.py` with a URL-encoded absolute path traversal to write the attacker’s public key into `/root/.ssh/authorized_keys`. Repository structure: most files are Markdown writeups for HTB machines/challenges. Only 5 files contain exploit code, all under `VariaType/`. `phase1_git_extract.py` handles exposed Git extraction and credential recovery. `phase2_rce_exploit.py` generates malicious font/designspace artifacts for the webshell stage, though upload is partly left manual in that script. `phase3_privesc_steve.py` generates an SSH key, builds an evil ZIP with a filename-based command injection payload, serves it over HTTP, and attempts to place it on the target for later processing. `phase4_privesc_root.py` serves a root public key and invokes the vulnerable validator script over SSH as steve to gain root SSH access. `exploit_variatype.sh` ties the phases together into a mostly automated end-to-end attack. Overall, this is a valid exploit repository with operational code, not just detection logic. The exploit targets a web-exposed Linux application stack and culminates in full root compromise with SSH persistence.
This repository is a small standalone Python proof-of-concept for CVE-2025-2945 affecting pgAdmin 4. It contains two files: a README describing the vulnerability, exploit flow, requirements, and usage; and a single executable script, poc.py, which implements the attack. The exploit is not part of a larger framework. The PoC performs a full authenticated exploitation chain over HTTP using requests.Session. It first retrieves a CSRF token from /login, supporting multiple extraction methods: known CSRF cookie names, a hidden HTML input field used by older versions, and a regex match for the csrfToken value embedded in the React-based login page for pgAdmin 9.x. It then authenticates to /authenticate/login, with a fallback POST to /login for older versions. After login, the script enumerates possible server IDs by calling /sqleditor/get_server_connection/<sgid>/<sid> until the JSON response indicates a valid registered server. It randomly chooses sgid, did, and trans_id values, then initializes a Query Tool session through /sqleditor/initialize/sqleditor/<trans_id>/<sgid>/<sid>/<did> using attacker-supplied database credentials. Finally, it sends a POST request to /sqleditor/query_tool/download/<trans_id> with JSON containing query_commited set to an arbitrary Python expression. The script treats an HTTP 500 response as confirmation that the payload executed, consistent with the vulnerable code path described in the README. Main exploit capability: authenticated remote code execution as the pgAdmin service account. The payload is fully user-controlled and can execute arbitrary Python expressions, including OS commands via __import__('os').system(...). The README includes examples for running id and for launching a bash reverse shell. Because the payload is directly supplied by the operator rather than generated by a framework, the exploit is best classified as OPERATIONAL rather than weaponized. Notable implementation details: the script defaults to plain HTTP on port 80, uses a browser-like User-Agent, relies on valid pgAdmin and database credentials, and requires the target to have a registered server accessible through the Query Tool. The repository’s purpose is clearly offensive validation of the pgAdmin Query Tool eval vulnerability, not detection or scanning only.
This repository provides a proof-of-concept exploit for CVE-2025-2945, a remote code execution vulnerability in pgAdmin4 versions 8.10 through 9.1. The exploit requires valid credentials for both pgAdmin4 and the underlying database. The main exploit script (poc.py) is written in Python and automates the process of authenticating to the target, retrieving CSRF tokens, identifying a valid server ID, initializing the SQL editor, and finally delivering a reverse shell payload via the Query Tool's download endpoint. The payload opens a reverse shell from the target server to an attacker-controlled host and port. The exploit targets several specific HTTP endpoints in the pgAdmin4 web interface, and is intended for use by authorized security professionals for research and testing. The repository consists of two files: a detailed README.md and the exploit script poc.py.
This repository provides a working exploit for CVE-2025-2945, a remote code execution vulnerability in pgAdmin4. The exploit targets two vulnerable endpoints in the pgAdmin backend, specifically '/sqleditor/query_tool/download' and '/cloud/deploy', where user-supplied parameters are unsafely passed to Python's eval() function, allowing arbitrary code execution. The main exploit logic is implemented in 'exploit/src/main.py', which automates authentication, session setup, and payload delivery to the vulnerable endpoint. The payload, configurable via 'exploit/resource/config.toml', is a Python one-liner that opens a reverse shell to the attacker's machine. The repository also includes a Docker-based test environment under the 'stand' directory, allowing users to deploy a vulnerable instance of pgAdmin and PostgreSQL for testing. The exploit requires valid credentials to pgAdmin and network access to the target. The code is operational and demonstrates a full attack chain from authentication to remote shell access.
This repository contains a standalone Python exploit (exp.py) for CVE-2025-2945, an authenticated remote code execution (RCE) vulnerability in pgAdmin4 versions 8.10 through 9.1. The exploit requires valid credentials for both a pgAdmin4 user and a database user. The script performs the following steps: (1) checks the pgAdmin4 version, (2) retrieves a CSRF token, (3) authenticates to the web interface, (4) locates a valid server ID, (5) initializes a SQL editor session, and (6) sends an attacker-supplied Python payload for execution via the query tool. The exploit interacts with several HTTP endpoints of the target pgAdmin4 instance. The repository includes a README with usage instructions and references, a LICENSE file, and the main exploit script. The exploit is a proof-of-concept and does not include a weaponized or customizable payload framework, but allows arbitrary Python code execution as provided by the user.
This repository provides a proof-of-concept Python exploit for CVE-2025-2945, a critical authenticated remote code execution vulnerability in pgAdmin 4 versions 8.10 through 9.1. The exploit is implemented in 'poc.py', which automates the process of authenticating to a target pgAdmin instance, initializing a SQL editor session, and sending a malicious payload via the 'query_commited' parameter to trigger arbitrary Python code execution on the server. The script requires valid credentials and database connection details. The README.md offers detailed usage instructions, vulnerability background, and references. The exploit targets HTTP endpoints exposed by pgAdmin and is network-based, requiring only web access and valid credentials. No hardcoded endpoints or IPs are present; all targets are user-supplied at runtime. The payload is customizable, allowing the attacker to execute any Python code on the vulnerable server. The repository is structured with a single exploit script, a README, and a license file.
This repository contains a single Metasploit module targeting CVE-2025-2945, a remote code execution vulnerability in pgAdmin versions prior to 9.2. The exploit requires valid pgAdmin and database credentials, as it abuses the authenticated query tool interface. The module is written in Ruby and leverages Metasploit's HTTP client and pgAdmin mixins. The attack is performed by sending a specially crafted payload in the 'query_commited' POST parameter to the '/sqleditor/query_tool/download/<trans_id>' endpoint, which is then executed via a Python eval() statement on the server. The default payload is a Python Meterpreter reverse shell, but other Python payloads can be used. The module is operational and weaponized, allowing for customizable payloads and reliable exploitation. The code is structured with clear functions for session initialization, server ID discovery, and exploitation, and is intended for use within the Metasploit framework.
Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.
Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.
11 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
Query your assets running an affected version, and investigate the blast radius.
Every observed campaign linking this CVE to a named adversary.
Malware families riding this exploit, with evidence and IOCs.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Cross-references every affected SKU, including bundled OEM variants.
Community discussion across Reddit, Mastodon, and other social sources.