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-2024-36401-geoserver-rce — Reproduzierbare Studie von CVE-2024-36401: nicht authentisierte RCE in GeoServer über JXPath-Eval-Injection. Enthält technischen Bericht, funktionierenden Exploit/Verifier und Docker-Umgebung, die den Fehler auf verwundbaren und gepatchten Instanzen demonstriert. | Kitploit
Tools/GitHubGitHub/danielegiovanardi2408/cve-2024-36401-geoserver-rce
SchwachstellenanalyseExploitationWebanwendungs-ExploitationCTFPenetrationstestsLernen & Bildung
GitHubdanielegiovanardi2408/cve-2024-36401-geoserver-rce

cve-2024-36401-geoserver-rce

Reproduzierbare Studie von CVE-2024-36401: nicht authentisierte RCE in GeoServer über JXPath-Eval-Injection. Enthält technischen Bericht, funktionierenden Exploit/Verifier und Docker-Umgebung, die den Fehler auf verwundbaren und gepatchten Instanzen demonstriert.

Repository anzeigen
10vor 3 MonatenNoch 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-2024-36401 — Nicht authentifizierte RCE in GeoServer

CVE CVSS CISA KEV Type License

Eine vollständige, reproduzierbare Studie von CVE-2024-36401, einer nicht authentifizierten Schwachstelle zur Remote-Codeausführung in GeoServer – dem am weitesten verbreiteten Open-Source-Server für Geodaten. Der Fehler ist eine Eval-Injection: Über die Parameter der OGC-Standards übergibt GeoServer angreifergesteuerte Eigenschaftsnamen an GeoTools, wo Apache Commons JXPath sie als XPath-Ausdrücke auswertet und, wie vorgesehen, über Reflexion beliebige Java-Methoden aufrufen kann. Eine nicht authentifizierte Anfrage wie exec(java.lang.Runtime.getRuntime(),'id') führt daher Befehle auf dem Host aus.

Dieses Repository enthält den technischen Bericht, einen funktionierenden Exploit/Verifizierer und eine Ein-Befehl-Docker-Umgebung, die die RCE auf einer anfälligen Instanz demonstriert und zeigt, wie derselbe Exploit auf der gepatchten Instanz .

fehlschlägt

Bildungsprojekt. Entwickelt für einen Universitätskurs (Data Privacy and Security, LUISS DASMA). Alles läuft nur gegen lokale, isolierte Container – siehe Verantwortungsvolle Nutzung.

Auf einen Blick

FeldWert
CVE (GeoServer)CVE-2024-36401
Root Cause (GeoTools)CVE-2024-36404
TypNicht authentifizierte Remote-Codeausführung
CWECWE-95, Eval-Injection
CVSS v3.19.8 Critical (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
BetroffenGeoServer < 2.25.2 / GeoTools < 31.2 (and earlier branches)
CISA KEVJa (15. Juli 2024)
Untersuchte VersionenAnfällig 2.25.1, gepatcht 2.25.2

Repository-Struktur

root@kitploit:~
.
├── report/
│   ├── report.pdf            # the full technical report (read this first)
│   ├── report.md             # report source (Pandoc/XeLaTeX)
│   └── images/               # figures and screenshots
├── docker/
│   ├── vulnerable/Dockerfile # GeoServer 2.25.1 (vulnerable)
│   └── patched/Dockerfile    # GeoServer 2.25.2 (fixed)
├── docker-compose.yml        # vuln on :8080, patched on :8081
├── exploit/
│   ├── exploit.py            # exploit + vuln/patched verifier (stdlib only)
│   ├── exploit.sh            # curl-based PoC (GET + POST variants)
│   ├── payloads.md           # payload catalogue per OGC endpoint
│   └── output/               # captured proof logs and transcripts
└── run-reproduction.sh       # one command: build + exploit both + collect proofs

Schnellstart

Voraussetzungen: Docker Desktop läuft, python3, curl.

root@kitploit:~
# Build both containers, run the exploit against each, and collect the proofs
chmod +x run-reproduction.sh
./run-reproduction.sh

Oder Schritt für Schritt:

root@kitploit:~
docker compose up -d --build       # vuln on :8080, patched on :8081

# Vulnerable (expected: VULNERABLE, ~8s delay)
python3 exploit/exploit.py -t http://localhost:8080/geoserver --label vuln -o exploit/output

# Patched (expected: PATCHED, immediate rejection)
python3 exploit/exploit.py -t http://localhost:8081/geoserver --label patched -o exploit/output

docker compose down                # when finished

So funktioniert der Exploit

Zwei unabhängige Sonden machen das Ergebnis eindeutig:

  • Blind (zeitbasiert): java.lang.Thread.sleep(8000) blockiert den Thread, der den XPath auswertet, sodass die HTTP-Antwort um ~8 s verzögert wird – messbar vom Client, kein Containerzugriff nötig. Es ist derselbe Canary, der in den offiziellen Fix-Tests verwendet wird.
  • Datei (Befehlsausführung): exec(java.lang.Runtime.getRuntime(),'touch /tmp/<marker>') erstellt eine Datei im Container, überprüfbar mit docker exec.

Auf der anfälligen Instanz gibt das manuelle Senden der Payload eine ClassCastException auf ProcessImpl zurück – die JVM führte Runtime.exec aus und konnte dann das resultierende Process-Objekt nicht als Attribut verwenden. Diese Ausnahme ist der Beweis der Ausführung:

WFS GetPropertyValue mit exec-Payload, die eine ClassCastException auf der anfälligen Instanz zurückgibt

Der Fix

GeoTools Commit e53e5170 (in GeoServer 2.25.2, 2.24.4, 2.23.6, 2.22.6) wendet Defence in Depth auf beide Hälften des Fehlers an:

  • Sink: Ein JXPathUtils.newSafeContext(...)-Helper installiert eine leere FunctionLibrary, sodass JXPath exec/Thread.sleep nicht mehr als Funktionen auflösen kann – der String bleibt ein einfacher Eigenschaftsname.
  • Scope: FeaturePropertyAccessorFactory prüft jetzt auch SimpleFeatureType, sodass einfache Features den anfälligen Accessor nicht mehr erreichen.

Auf der gepatchten Instanz gibt dieselbe Payload No such attribute: ... zurück und nichts wird ausgeführt.

Vollständige Details – betroffener Code mit Datei/Zeilenreferenzen, Exploitation, Mitigation-Diff und die Side-by-Side-Reproduktion – finden Sie in report/report.pdf.

Verantwortungsvolle Nutzung

Dieses CVE ist öffentlich, wurde seit über 18 Monaten gepatcht, ist im CISA-Katalog der bekannten ausgenutzten Schwachstellen enthalten und hat öffentliche PoCs (Vulhub, Nuclei, Metasploit). Der Code hier zielt nur auf localhost und die isolierten Studiencontainer in diesem Repository ab. Verwenden Sie ihn nicht gegen Systeme, die Ihnen nicht gehören oder für die Sie nicht ausdrücklich berechtigt sind, Tests durchzuführen.

Lizenz

MIT © 2026 Daniele Giovanardi

Autor

Daniele Giovanardi — Data Science and Management (DASMA), LUISS Guido Carli. Kursarbeit für Data Privacy and Security.

Tool herunterladen