
Erkennt und nutzt Apache-Tomcat-CVE-2025-55752-Pfad traversal über das Rewrite Valve aus, wodurch PUT-basiertes JSP-Upload und Remote-Code-Ausführung ermöglicht werden.
🚨🚨 CVE-2025-55752 — Apache Tomcat: Umgehung des Verzeichnisschutzes über Rewrite Valve → PUT-basierte RCE🚨🚨 Zusammenfassung
CVE-2025-55752 ist eine Sicherheitsregression in Apache Tomcat, die bei der Behebung von Bug #60013 eingeführt wurde. Wenn das Rewrite Valve verwendet wird, wendet Tomcat die Pfadnormalisierung vor der URL-Dekodierung an. Diese falsche Reihenfolge ermöglicht es, durch manipulierte URIs die in StandardContextValve.java implementierten Zugriffskontrollen für geschützte Pfade wie /WEB-INF/ und /META-INF/ zu umgehen. Wenn der Server HTTP-PUT-Anfragen akzeptiert (oder einen beschreibbaren Datei-Upload-Endpunkt bereitstellt), kann ein Angreifer schädliche Artefakte (z. B. .jsp oder serialisierte Sitzungen) hochladen und Remote Code Execution (RCE) erreichen.
🚨 Betroffene Versionen
Ältere End-of-Life (EOL) Tomcat-Zweige, die die Rewrite/Normalisierungs-Änderung enthalten, können ebenfalls betroffen sein. Überprüfen Sie dies gegen Ihre spezifische Distribution/Hersteller-Build.
🚨 Auswirkungen
PUT (oder andere schreibfähige Endpunkte) aktiviert ist oder wenn Webapps Datei-Uploads ohne ausreichende Validierung erlauben.🚨🚨 Technische Details (kurzgefasst)
StandardContextValve-Schutzmechanismen für /WEB-INF/ und /META-INF/ umgeht.PUT akzeptiert oder einen Datei-Upload-Endpunkt hat, der Dateien unter dem Webapp-Dokumentstamm ablegt, kann der Angreifer .jsp oder andere ausführbare Inhalte an einen Ort schreiben, den der Server ausliefert/ausführt, was zu RCE führt.Behebung & Verteidigungsstrategien
Sofort (empfohlen)
Tomcat aktualisieren auf eine behobene, unterstützte Version so bald wie möglich:
Wenn ein sofortiges Upgrade nicht möglich ist (temporäre Abschwächungen)
HTTP-PUT deaktivieren auf Server-, Connector- oder Reverse-Proxy-Ebene (z. B. über Webserver-Konfiguration oder Firewall-Regeln).
Rewrite-Regeln härten/entfernen, die beliebiges Umschreiben auf beschreibbare Speicherorte erlauben; insbesondere Regeln entfernen, die Query-Parameter in Dateipfade umschreiben oder weiterleiten.
Datei-Upload-Handling in Webanwendungen härten:
/WEB-INF/, /META-INF/ oder einem beliebigen Anwendungs-Classpath abzulegen.Exploit-URIs filtern/blockieren an der Peripherie (WAF / Reverse-Proxy), indem verdächtige kodierte Payloads und Muster blockiert werden, die versuchen, die /WEB-INF- oder /META-INF-Schutzmechanismen zu umgehen.
Least Privilege für Dateispeicher: sicherstellen, dass der Webapp-Prozess nicht in Verzeichnisse schreiben kann, die vom Container ausgeliefert oder ausgeführt werden.
Funktionsübersicht
Dieses Tool führt eine zweistufige Erkennung basierend auf der offiziellen CVE-2025-55752-Beschreibung durch:
Versucht, die falsche Reihenfolge der URL-Normalisierung vor der Dekodierung im Apache Tomcat Rewrite Valve auszunutzen, was Pfad-Traversal zu geschützten Speicherorten wie /WEB-INF oder /META-INF ermöglicht.
Versucht, eine Test-JSP-Datei über HTTP PUT hochzuladen und prüft dann, ob die Schutzmechanismen umgangen werden können, um auf die hochgeladene Datei zuzugreifen.
Prüfen, ob Pfad-Traversal zu geschützten Verzeichnissen möglich ist:
python3 cve_2025_55752_detector.py http://target:8080 --check
Versuchen, eine JSP-Datei hochzuladen und den Zugriffs-Bypass zu testen:
python3 cve_2025_55752_detector.py http://target:8080
🔧 Dateinamen und Payload-Inhalt anpassen:
python3 cve_2025_55752_detector.py http://target:8080 --filename exploit.jsp --payload "<% out.println('PWNED'); %>"