
Un POC pour la vulnérabilité CVE-2025-66516 d'Apache Tika à des fins éducatives uniquement
Test pédagogique/uniquement autorisé | Licence | Politique de sécurité
Ce dépôt contient un exploit de preuve de concept (POC) pour CVE-2025-66516, une vulnérabilité d'injection XML External Entity (XXE) dans les versions d'Apache Tika antérieures à 3.2.2. La vulnérabilité affecte l'analyseur XFA (XML Forms Architecture) du composant tika-parser-pdf-module, permettant aux attaquants de lire des fichiers locaux et d'exfiltrer des données sensibles via des documents PDF malveillants.
CVE-2025-66516 est une vulnérabilité de sécurité critique dans la fonctionnalité d'analyse PDF d'Apache Tika. Lors du traitement de fichiers PDF contenant des formulaires XFA intégrés, les versions de Tika antérieures à 3.2.2 ne parviennent pas à restreindre correctement le traitement des entités externes dans les analyseurs XML. Cela permet aux attaquants de :
Ce dépôt inclut :
Apache Tika XXE, exploit CVE-2025-66516, vulnérabilité de sécurité Tika, attaque XML External Entity, injection XXE PDF, vulnérabilité Tika 3.2.1, XXE hors bande, OOB XXE, recherche en sécurité, tests d'intrusion, exploit POC, divulgation de vulnérabilité, vulnérabilité de l'analyseur XFA, tika-parser-pdf-module, vulnérabilité de divulgation de fichiers, exfiltration de données, attaque SSRF, codage sécurisé, analyse de vulnérabilité, tests de sécurité, hacking éthique, infosec, recherche en cybersécurité, code d'exploit Apache Tika, payload XXE, sécurité PDF, vulnérabilité d'analyseur de documents
Remarque : Cette POC a été testée et vérifiée sur :
Tout d'abord, créez un répertoire dédié pour la POC afin de garder tous les fichiers organisés.
mkdir apache_tika_poc
cd apache_tika_poc
Avant de procéder à la POC, vérifiez que votre environnement dispose des dépendances requises. Ces commandes afficheront les versions de votre compilateur/environnement d'exécution Java et les détails du système d'exploitation, importants pour reproduire la vulnérabilité.
# Check Java version
java -version
javac -version
# Check OS version
lsb_release -a
Sortie attendue : Vous devriez voir les informations de version Java (par exemple, OpenJDK 17.x.x) et les détails de la version Ubuntu (24.04.3 LTS).
Téléchargez les versions vulnérable (3.2.1) et corrigée (3.2.2) d'Apache Tika. Nous avons besoin des deux versions pour démontrer que la vulnérabilité XXE existe dans 3.2.1 et est corrigée dans 3.2.2. Le JAR tika-app est un exécutable tout-en-un qui inclut tous les analyseurs Tika et leurs dépendances.
# Download vulnerable Tika version
wget https://repo1.maven.org/maven2/org/apache/tika/tika-app/3.2.1/tika-app-3.2.1.jar
# Download patched Tika version
wget https://repo1.maven.org/maven2/org/apache/tika/tika-app/3.2.2/tika-app-3.2.2.jar
Sortie attendue : Deux fichiers JAR seront téléchargés - tika-app-3.2.1.jar (~75 Mo) et tika-app-3.2.2.jar (~75 Mo).
Vérifiez les versions exactes en inspectant les fichiers de manifeste des JAR. Cela confirme que nous avons les bonnes versions vulnérable et corrigée avant les tests.
# Check vulnerable version manifest
unzip -p tika-app-3.2.1.jar META-INF/MANIFEST.MF
# Check patched version manifest
unzip -p tika-app-3.2.2.jar META-INF/MANIFEST.MF
Sortie attendue : Fichiers manifeste affichant Implementation-Version: 3.2.1 et 3.2.2 respectivement, ainsi que les horodatages de construction et autres métadonnées.
Si nous examinons les modèles d'objet de projet (les propriétés POM de Maven définissent les dépendances, la configuration de construction et les métadonnées d'un projet), nous constatons qu'il n'y a pas de tika-parsers séparés comme mentionné dans les avis de sécurité - cela pourrait être lié à la version et l'hypothèse est que dans les versions 3.2.1 et 3.2.2, qui font partie de la POC, le module tika-parsers a été remplacé par des modules d'analyseur individuels.
# List all component pom.properties files for both versions
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
Sortie attendue : Une liste de tous les modules de composants Tika, incluant tika-core, tika-parser-pdf-module, tika-xmp, etc. Vous remarquerez des modules d'analyseur individuels plutôt qu'un seul module tika-parsers.
Extrayez et affichez les informations de version pour les composants principaux de Tika. Cela nous aide à comprendre la structure interne des modules et à confirmer que la bibliothèque principale et le module d'analyseur PDF sont aux versions attendues.
# Check tika-core, tika-parser-pdf-module, and tika-app versions for 3.2.1
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