
Lokales Reproduktionslabor für Apache Tomcat CVE-2025-24813, das Exploit-Bedingungen und KI-gestützte Verifikation der Schwachstelle dokumentiert.
Nur für lokale autorisierte Experimente, Patch-Verständnis und Verteidigungsvalidierung. Bitte keine Anfragen an nicht autorisierte Ziele senden.
Dieses Projekt dokumentiert den Reproduktionsprozess von CVE-2025-24813 auf einer lokalen Apache Tomcat 9.0.98-Instanz: Verwendung von partial PUT zum Schreiben einer temporären Datei, um unter einer Konfiguration mit aktivierter dateibasierter Session-Persistenz und lockerer Deserialisierungsfilterung die Session-Dateiladung und die Payload-Ausführungskette zu verifizieren.
.inject.session im Arbeitsverzeichnis und anschließend, dass der Zugriff die Session-Ladung auslöst und die Payload ausführt; ein Erfolg darf nicht allein anhand des HTTP-Statuscodes beurteilt werden.409 oder 500 zurück, jedoch müssen Dateischreibung und nachfolgende Auslösung weiterhin phasenweise anhand des Dateiinhalts, der Server-Logs und kontrollierter Nebenwirkungen beurteilt werden.Die offizielle Apache-Sicherheitsmitteilung listet die Auslösevoraussetzungen, den Auswirkungsbereich (Tomcat 9.0.0-M1 bis 9.0.98) und die Fix-Informationen für 9.0.99 zu CVE-2025-24813 auf: https://tomcat.apache.org/security-9
java -version)requests127.0.0.1:8080scripts/reproduce_local.py # Lokales Validierungsskript, Ziel standardmäßig localhost:8080
evidence/ # Experiment-Screenshots (bereits nach Schritten umbenannt)
python3 -m venv .venv
. .venv/bin/activate
python -m pip install requests
python scripts/reproduce_local.py
Das Ziel im Skript ist fest auf die lokale Experimentadresse gesetzt und enthält keine Logik für Remote-Scans. Vor der Ausführung sollte in der lokalen Tomcat-Instanz bestätigt werden:
work/Catalina/localhost/ROOT sind beobachtbar.PUT /inject/session mit Content-Range senden und beobachten, ob die temporäre Datei erzeugt wird;work/Catalina/localhost/ROOT/.inject.session prüfen;JSESSIONID=.inject auf eine kontrollierte lokale Seite zugreifen und die Session-Dateiladung beobachten;409/500 direkt als Fehlschlag oder Erfolg der Schwachstellenreproduktion zu werten.HTTP-Header müssen echte CRLF (Bytes 0d 0a) verwenden; senden Sie 0x0d0x0a nicht als sichtbaren Text. In Python sollte b"\\r\\n" verwendet werden oder requests die Konstruktion der Anforderungsheader übernehmen.
Prioritär auf eine Tomcat-Version aktualisieren, die den Fix enthält, und anschließend die Schreibberechtigungen des Default Servlet, die Verwendungsszenarien von partial PUT sowie die Konfiguration des Session-Persistenzfilters erneut prüfen. Nach dem Fix dieselbe Gruppe lokaler Verifikationsschritte wiederholen; es wird erwartet, dass die Schreibkette für temporäre Dateien oder die Session-Ladekette nicht mehr zustande kommt.
Dieses Repository bietet keine Scan-, Persistenz- oder Massenausnutzungsfunktionen für Internetziele. Alle Inhalte sind ausschließlich auf die selbst kontrollierte lokale Experimentumgebung und ausdrücklich autorisierte Übungsumgebungen beschränkt.