CVE-2025-66516 : Apache Tika – Injection XXE via PDF malveillant avec accès à des fichiers arbitraires et SSRF

Apache Tika est une puissante boîte à outils open-source d’analyse de contenu, utilisée par les applications d’entreprise pour extraire des métadonnées et du texte à partir d’une vaste gamme de types de fichiers, notamment les PDF, les documents Microsoft Office et bien d’autres. Son utilisation généralisée en tant que bibliothèque backend signifie qu’une vulnérabilité dans Tika peut avoir un impact en cascade sur d’innombrables applications qui l’utilisent pour le traitement des fichiers et l’ingestion de données.

Cette vulnérabilité est particulièrement grave car elle permet la divulgation d’informations non authentifiée et le pivotement réseau (SSRF). Toute application exposée publiquement utilisant une version vulnérable de Tika pour traiter des fichiers téléchargés par les utilisateurs est à haut risque. Un attaquant peut simplement télécharger un PDF spécialement conçu pour lire des fichiers sensibles côté serveur, tels que des fichiers de justificatifs et du code source, ou pour effectuer des scans et des attaques sur des services réseau internes non directement exposés à Internet.

Fondamental : un exploit public est disponible et des rapports font état d’une exploitation active dans des environnements réels. La complexité des composants concernés (tika-core, tika-pdf-module, tika-parsers) augmente la probabilité que les correctifs soient appliqués de manière incomplète, laissant les systèmes exposés. Les organisations doivent traiter ce problème comme une menace critique et urgente.

ProduitApache Tika
Date06/12/2025 00:33:00

Résumé technique

La cause technique de cette vulnérabilité est une CWE-611 : Restriction inappropriée des références à des entités externes XML, communément appelée injection XXE. Le défaut existe au sein de la bibliothèque principale d’Apache Tika (tika-core) lors de l’analyse des données XML Forms Architecture (XFA) qui peuvent être intégrées dans les fichiers PDF. L’analyseur XML responsable de la gestion des formulaires XFA ne désactive pas la résolution des entités externes.

La chaîne d’attaque est la suivante :

  1. Un attaquant crée un fichier PDF malveillant contenant un formulaire XFA intégré. Dans les données XML de ce formulaire, l’attaquant inclut une DTD (Document Type Definition) malveillante avec une déclaration d’entité externe.
  2. Cette entité pointe vers une ressource de fichier local (ex. file:///etc/passwd) ou vers une ressource réseau interne.
  3. L’attaquant télécharge ce PDF sur une application côté serveur qui utilise une version vulnérable d’Apache Tika pour le traitement.
  4. Lorsque l’analyseur PDF de Tika traite le fichier, il rencontre les données XFA malveillantes, résout l’entité externe et intègre le contenu de la ressource demandée (ex. le contenu de /etc/passwd) dans la sortie XML analysée, qui peut ensuite être exfiltrée par l’attaquant.

Un exemple conceptuel d’entité malveillante au sein des données XFA est :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
   <!ENTITY % xxe SYSTEM "file:///etc/shadow">
   %xxe;
]>
<root/>

Note : il s’agit d’un exemple conceptuel, pas d’une charge utile fonctionnelle.

Versions affectées :

  • tika-core : Versions 1.13 à 3.2.1
  • tika-pdf-module : Versions 2.0.0 à 3.2.1
  • tika-parsers : Versions 1.13 à 1.28.5

La vulnérabilité est corrigée dans les versions ultérieures. En raison de la chaîne de dépendances complexe, il est crucial de s’assurer que la bibliothèque tika-core sous-jacente est mise à jour.

Recommandations

  • Appliquer le correctif immédiatement : Mettez à jour tous les composants Apache Tika concernés vers les versions les plus récentes disponibles. Assurez-vous que la bibliothèque sous-jacente tika-core est mise à jour au-delà de la version 3.2.1 et que tika-parsers est mis à jour au-delà de la version 1.28.5. Vérifiez les dépendances dans les fichiers de build du projet (pom.xml, build.gradle, etc.) pour confirmer que les versions correctes sont déployées.

  • Atténuations :

    • Si l’application du correctif n’est pas possible immédiatement, envisagez la mise en œuvre d’un contrôle temporaire pour refuser les téléchargements de fichiers PDF ou les acheminer via un environnement sandbox pour traitement.
    • Si l’application le permet, configurez par programmation l’analyseur XML utilisé par Tika pour désactiver explicitement la résolution des entités externes. Cela sert de défense secondaire robuste.
    • Utilisez un pare-feu d’application Web (WAF) avec des règles conçues pour inspecter le contenu des fichiers, bien que la détection d’XXE au sein de formats binaires complexes comme les PDF puisse être peu fiable.

  • Investigation et surveillance :

    • Surveillez les journaux de l’application pour détecter les messages d’erreur liés à l’analyse XML, en particulier ceux contenant des mots-clés tels que DOCTYPE, ENTITY ou SYSTEM.
    • Examinez le trafic réseau sortant des serveurs d’application pour détecter toute requête inhabituelle vers des adresses IP internes ou des URL externes qui ne font pas partie des activités normales, car cela pourrait indiquer une activité SSRF.
    • Effectuez un audit des répertoires de téléchargement de fichiers pour identifier les PDF suspects, en particulier ceux de petite taille mais provoquant des erreurs de traitement.

  • Réponse aux incidents :

    • En cas de suspicion de compromission, isolez immédiatement l’hôte du réseau pour empêcher toute exfiltration de données ou mouvement latéral supplémentaire.
    • Partez du principe que tous les secrets, justificatifs et clés API stockés ou accessibles sur le serveur compromis ont été compromis et entamez les procédures de rotation.
    • Menez une analyse forensique du système isolé pour déterminer l’étendue de la violation et identifier les fichiers auxquels il a été accédé.

  • Défense en profondeur :

    • Exécutez votre application Web avec les privilèges utilisateur les plus bas possibles pour limiter l’impact d’une lecture arbitraire de fichiers.
    • Mettez en œuvre une segmentation réseau rigoureuse et des règles de pare-feu pour empêcher les serveurs Web d’établir des connexions arbitraires vers des serveurs de base de données internes, des consoles administratives et d’autres ressources sensibles.

[Callforaction-THREAT-Footer]

Leave a Reply

Your email address will not be published. Required fields are marked *