
Ein POC für die CVE-2025-66516 Apache Tika Vulnerability nur zu Bildungszwecken
Nur zu Bildungs-/Autorisierten Testzwecken | Lizenz | Sicherheitsrichtlinie
Dieses Repository enthält einen Proof-of-Concept (POC)-Exploit für CVE-2025-66516, eine XML External Entity (XXE)-Injection-Schwachstelle in Apache Tika Versionen vor 3.2.2. Die Schwachstelle betrifft den XFA (XML Forms Architecture)-Parser in der Komponente tika-parser-pdf-module und ermöglicht es Angreifern, lokale Dateien zu lesen und sensible Daten durch böswillig erstellte PDF-Dokumente zu exfiltrieren.
CVE-2025-66516 ist eine kritische Sicherheitslücke in der PDF-Parsing-Funktionalität von Apache Tika. Bei der Verarbeitung von PDF-Dateien mit eingebetteten XFA-Formularen schalten Tika-Versionen vor 3.2.2 die externe Entity-Verarbeitung in XML-Parsern nicht richtig ein. Dies ermöglicht Angreifern Folgendes:
Dieses Repository enthält:
Apache Tika XXE, CVE-2025-66516 Exploit, Tika Sicherheitslücke, XML External Entity Angriff, PDF XXE Injection, Tika 3.2.1 Schwachstelle, Out-of-Band XXE, OOB XXE, Sicherheitsforschung, Penetrationstest, POC Exploit, Offenlegung von Schwachstellen, XFA Parser Schwachstelle, tika-parser-pdf-module, Datei-Offenlegung, Datenexfiltration, SSRF Angriff, sicheres Codieren, Schwachstellenanalyse, Sicherheitstests, ethisches Hacken, Infosec, Cybersicherheitsforschung, Apache Tika Exploit-Code, XXE Payload, PDF Sicherheit, Dokumentenparser Schwachstelle
Hinweis: Dieser POC wurde getestet und verifiziert auf:
Erstellen Sie zunächst ein dediziertes Verzeichnis für den POC, um alle Dateien organisiert zu halten.
mkdir apache_tika_poc
cd apache_tika_poc
Überprüfen Sie vor dem Fortfahren mit dem POC, ob Ihre Umgebung die erforderlichen Abhängigkeiten enthält. Diese Befehle zeigen Ihre Java-Compiler/Laufzeitversionen und OS-Details an, die für die Reproduktion der Schwachstelle wichtig sind.
# Java-Version prüfen
java -version
javac -version
# OS-Version prüfen
lsb_release -a
Erwartete Ausgabe: Sie sollten Java-Versionsinformationen (z. B. OpenJDK 17.x.x) und Ubuntu-Versionsdetails (24.04.3 LTS) sehen.
Laden Sie sowohl die anfällige (3.2.1) als auch die gepatchte (3.2.2) Version von Apache Tika herunter. Wir benötigen beide Versionen, um zu demonstrieren, dass die XXE-Schwachstelle in 3.2.1 existiert und in 3.2.2 behoben ist. Das tika-app JAR ist eine All-in-One ausführbare Datei, die alle Tika-Parser und Abhängigkeiten enthält.
# Anfällige Tika-Version herunterladen
wget https://repo1.maven.org/maven2/org/apache/tika/tika-app/3.2.1/tika-app-3.2.1.jar
# Gepatchte Tika-Version herunterladen
wget https://repo1.maven.org/maven2/org/apache/tika/tika-app/3.2.2/tika-app-3.2.2.jar
Erwartete Ausgabe: Zwei JAR-Dateien werden heruntergeladen - tika-app-3.2.1.jar (~75 MB) und tika-app-3.2.2.jar (~75 MB).
Überprüfen Sie die genauen Versionen durch Einsicht in die JAR-Manifestdateien. Dies bestätigt, dass wir die korrekten anfälligen und gepatchten Versionen vor dem Testen haben.
# Manifest der anfälligen Version prüfen
unzip -p tika-app-3.2.1.jar META-INF/MANIFEST.MF
# Manifest der gepatchten Version prüfen
unzip -p tika-app-3.2.2.jar META-INF/MANIFEST.MF
Erwartete Ausgabe: Manifest-Dateien, die Implementation-Version: 3.2.1 bzw. 3.2.2 zusammen mit Build-Zeitstempeln und anderen Metadaten anzeigen.
Wenn wir uns die Project Object Models (Mavens POM-Eigenschaften definieren die Abhängigkeiten, Build-Konfiguration und Metadaten eines Projekts) ansehen, sehen wir, dass es keine separaten tika-parsers gibt, wie in den Sicherheitshinweisen erwähnt – könnte versionsabhängig sein, und die Annahme ist, dass in den Versionen 3.2.1 und 3.2.2, die Teil des POC sind, das tika-parsers-Modul durch einzelne Parser-Module ersetzt wurde.
# Alle pom.properties-Dateien der Komponenten für beide Versionen auflisten
unzip -l tika-app-3.2.1.jar | grep pom.properties | grep tika
unzip -l tika-app-3.2.2.jar | grep pom.properties | grep tika
Erwartete Ausgabe: Eine Liste aller Tika-Komponentenmodule einschließlich tika-core, tika-parser-pdf-module, tika-xmp usw. Sie werden einzelne Parser-Module anstelle eines einzelnen tika-parsers-Moduls bemerken.
Extrahieren und anzeigen der Versionsinformationen für Kern-Tika-Komponenten. Dies hilft uns, die interne Modulstruktur zu verstehen und zu bestätigen, dass sowohl die Kernbibliothek als auch das PDF-Parser-Modul die erwarteten Versionen haben.
# tika-core, tika-parser-pdf-module und tika-app Versionen für 3.2.1 prüfen
unzip -p tika-app-3.2.1.jar META-INF/maven/org.apache.tika/tika-core/pom.properties && echo "---" && unzip -p tika-app-3.2.1.jar META-INF/maven/org.apache.tika/tika-parser-pdf-module/pom.properties && echo "---" && unzip -p tika-app-3.2.1.jar META-INF/maven/org.apache.tika/tika-app/pom.properties
# tika-core, tika-parser-pdf-module und tika-app Versionen für 3.2.2 prüfen
unzip -p tika-app-3.2.2.jar META-INF/maven/org.apache.tika/tika-core/pom.properties && echo "---" && unzip -p tika-app-3.2.2.jar META-INF/maven/org.apache.tika/tika-parser-pdf-module/pom.properties && echo "---" && unzip -p tika-app-3.2.2.jar META-INF/maven/org.apache.tika/tika-app/pom.properties