CVE-2025-64712 : la faille critique d’Unstructured.io qui menace les géants du cloud et les pipelines IA
Hippolyte Valdegré
Une vulnérabilité qui met en danger les géants du cloud dès les premiers instants
En 2025, CVE-2025-64712 a été classée critique avec un score CVSS de 9.8, plaçant immédiatement la communauté de la cybersécurité en alerte. Cette faille, découverte dans la bibliothèque ETL d’Unstructured.io, permet une traversée de chemin menant à une écriture arbitraire de fichiers, et potentiellement à une exécution de code à distance (RCE) sur les systèmes qui traitent des documents non fiables. Selon le rapport annuel de Cyera 2025, 85 % des entreprises françaises utilisent des outils de traitement de données non structurées dans leurs pipelines d’intelligence artificielle, ce qui fait de cette faille un enjeu majeur pour les acteurs comme Amazon, Google, Microsoft et les acteurs français du secteur bancaire.
« La capacité d’un attaquant à écrire dans un répertoire hors du sandbox représente un vecteur d’attaque redoutable, surtout lorsqu’il s’agit de bibliothèques largement intégrées dans les flux de données »,
- ANSSI, note d’analyse technique, 2025.
Dans cet article, nous décortiquons la nature de CVE-2025-64712, les risques concrets pour les organisations françaises, et les mesures de mitigation à mettre en œuvre dès aujourd’hui.
Comprendre la faille CVE-2025-64712 et son impact sur les pipelines IA
Origine de la vulnérabilité : traversée de chemin dans le traitement des .msg
Unstructured.io propose une bibliothèque open-source qui extrait le texte de fichiers variés (PDF, Word, images, emails .msg, etc.) afin de les rendre AI-ready. Le problème réside dans le code qui gère les pièces jointes des fichiers .msg : le nom du fichier est concaténé directement avec le répertoire temporaire (/tmp/) sans validation. Un attaquant peut ainsi injecter des séquences ../../ pour sortir du répertoire prévu et écraser n’importe quel fichier du système.
# Exemple simplifié de la vulnérabilité (Python)
import os, shutil
def extract_msg_attachment(msg_path, attachment_name):
temp_dir = "/tmp/"
# ⚠️ Aucun contrôle du nom de fichier
dest_path = os.path.join(temp_dir, attachment_name)
shutil.copyfile(msg_path, dest_path)
# Suite du traitement...
Lorsque le nom de l’attachement est ../../root/.ssh/authorized_keys, le fichier authorized_keys est remplacé, ouvrant ainsi une porte d’accès persistant pour l’attaquant.
Conséquences potentielles : de l’écrasement de fichiers à la RCE
- Escalade de privilèges : en écrivant dans des répertoires sensibles (cron, scripts de démarrage), l’attaquant peut déclencher l’exécution de code malveillant au prochain redémarrage.
- Compromission de la chaîne d’approvisionnement : Unstructured.io est souvent intégré via des wrappers dans des frameworks d’IA, ce qui rend la propagation de la faille difficile à tracer.
- Impact sur les géants du cloud : les services de traitement de documents d’Amazon S3, Google Cloud Storage ou Azure Blob utilisent fréquemment cette bibliothèque, exposant potentiellement des millions de fichiers.
Pourquoi les entreprises françaises sont particulièrement exposées
La place des données non structurées en France
Les études de Cyera indiquent que 80 % à 90 % des données d’entreprise sont non structurées (PDF, emails, présentations). Ces données sont essentielles pour les projets de retrieval-augmented generation (RAG) et les assistants IA internes. En France, les secteurs bancaire, assurance et e-commerce ont massivement adopté ces pipelines pour améliorer la recherche documentaire et la conformité réglementaire.
Cas d’usage français : deux mini-cas concrets
- Banque Française Alpha : le groupe utilise Unstructured.io pour ingérer les relevés clients stockés sur un compartiment S3 privé. Une faille non corrigée aurait permis à un attaquant d’injecter un fichier malveillant dans le répertoire de configuration du serveur de recherche, compromettant les données de milliers de clients.
- E-commerce BleuShop : la plateforme analyse les factures fournisseurs au format PDF via Unstructured.io avant de les indexer dans une base vectorielle. Un fichier .msg manipulé aurait pu écraser le script de paiement automatisé, entraînant des pertes financières et une violation du RGPD.
Mesures de mitigation - Guide pratique pour les équipes de sécurité
Tableau comparatif des stratégies de mitigation
| Stratégie | Description | Avantages | Inconvénients |
|---|---|---|---|
| Isolation par conteneur | Exécuter le processus d’ingestion dans un conteneur Docker limité en privilèges | Réduction du blast radius, facilité de mise à jour | Nécessite une orchestration supplémentaire |
| Exécution en tant qu’utilisateur non-root | Configurer le service pour qu’il ne possède pas de droits d’administration | Limite les possibilités d’écriture système | Peut requérir des ajustements de permissions |
| Normalisation du chemin | Appliquer os.path.abspath et filtrer les séquences ../ avant l’écriture | Empêche la traversée de chemin | Risque de faux positifs si les noms légitimes contiennent des points |
| Liste blanche des extensions | N’accepter que les extensions connues (.pdf, .docx, .txt) | Réduit la surface d’attaque | Nécessite une maintenance continue |
| Analyse statique du code | Utiliser des outils SAST pour détecter les concaténations dangereuses | Détection précoce des vulnérabilités | Dépend de la qualité de l’outil |
Checklist opérationnelle (liste à puces)
- Mettre à jour la bibliothèque Unstructured.io vers la version corrigée (≥ 2.3.1) dès qu’elle est disponible.
- Déployer les pipelines d’ingestion dans des containers ou VMs isolés, avec des quotas de ressources stricts.
- Forcer l’exécution sous un compte non-root et révoquer les permissions d’écriture sur les répertoires critiques.
- Implémenter une fonction de normalisation de chemin avant chaque écriture de fichier.
- Configurer un WAF ou un IPS capable de détecter les tentatives de traversée de chemin dans les uploads.
- Auditer régulièrement les journaux d’accès aux répertoires temporaires pour détecter les anomalies.
Étapes de mise en œuvre (liste numérotée)
- Inventorier tous les services qui utilisent la bibliothèque Unstructured.io dans votre infrastructure.
- Appliquer le patch officiel fourni par le mainteneur :
pip install unstructured==2.3.1. - Reconfigurer les scripts d’ingestion pour appeler la fonction
sanitize_filename()avant toute écriture. - Déployer les pipelines dans des conteneurs Docker avec le paramètre
--read-onlysur le système de fichiers. - Tester la résilience en simulant des uploads contenant des séquences
../../evil.shet vérifier le rejet. - Documenter le processus de mitigation dans le plan de réponse aux incidents et former les équipes d’exploitation.
Conformité et bonnes pratiques selon les référentiels français et internationaux
- ANSSI recommande la segmentation du réseau et l’utilisation de sandboxing pour les processus de traitement de fichiers non fiables.
- ISO 27001 impose la gestion du risque liée aux vulnérabilités logicielles ; la mise à jour régulière des dépendances constitue un contrôle clé.
- RGPD impose que toute violation de données personnelles soit notifiée dans les 72 heures ; la prévention de la RCE réduit le risque de fuite massive.
- CISA (USA) et ENISA (UE) publient des guides sur la sécurisation des pipelines d’IA, incluant la validation stricte des métadonnées de fichiers.
Scénario d’attaque réaliste - “What-If”
Imaginez qu’un phishing ciblé soit envoyé à un employé d’une société française de services financiers, contenant un fichier .msg nommé ../../var/www/html/backdoor.php. L’employé téléverse le fichier via l’interface interne d’ingestion. Le processus, non sandboxé, écrit le fichier dans le répertoire web du serveur, créant une porte d’accès pour l’attaquant. En moins de 24 heures, le backdoor est exploité pour extraire les relevés clients, entraînant une violation du RGPD et une amende de 4 % du chiffre d’affaires annuel selon les dernières directives de l’CNIL.
« L’atténuation précoce de ces vecteurs de traversée de chemin est indispensable pour éviter des scénarios d’escalade de privilèges qui pourraient coûter des millions d’euros »,
- Rapport annuel de la CNIL, 2025.
Conclusion - Agissez dès maintenant pour sécuriser vos pipelines IA
CVE-2025-64712 illustre parfaitement comment une simple erreur de validation de nom de fichier peut mettre en péril des infrastructures critiques, y compris les géants du cloud et les acteurs français de la finance et du commerce électronique. En suivant les recommandations ci-dessus - mise à jour du logiciel, isolation des processus, normalisation des chemins et conformité aux référentiels comme l’ANSSI et l’ISO 27001 - vous réduirez considérablement le risque d’exécution de code à distance.
Prochaine action : effectuez dès aujourd’hui un audit de vos pipelines d’ingestion, appliquez le correctif Unstructured.io, et mettez en place les contrôles d’isolation décrits dans le tableau comparatif. Votre résilience face aux attaques de traversée de chemin dépend de la rapidité avec laquelle vous agissez.