Injection XXE XXE injection
XML External Entity injection — faille où un analyseur XML se laisse piéger et traite des entités externes glissées par l'attaquant : lecture de fichiers locaux, SSRF ou déni de service. Elle naît de fonctionnalités XML dangereuses activées par défaut.
Le mécanisme : XML permet de déclarer des « entités » qui référencent un contenu externe. Un attaquant qui peut envoyer du XML à un analyseur vulnérable définit une entité pointant vers, par exemple, file:///etc/passwd ou une URL interne. À l'expansion, l'analyseur lit le fichier ou émet l'appel, puis renvoie le résultat dans la réponse. Conséquences : fuite de fichiers sensibles (mots de passe, configuration, clés), SSRF (faire appeler par le serveur des services internes ou les métadonnées du cloud) et déni de service « billion laughs » (entités récursives qui font gonfler la mémoire). Cause profonde : de nombreuses bibliothèques XML activaient les entités externes par défaut. Remède simple et définitif : désactiver le traitement des DTD et des entités externes ; à défaut, préférer un format plus simple (JSON) et valider les entrées. Un classique du Top 10 OWASP, cousin de la SSRF et de la désérialisation non sécurisée.