CVE-2025-64712 : comment la faille d’Unstructured.io menace les géants du cloud et expose les pipelines d’IA à la RCE
Lysandre Beauchêne
En 2025, plus de 85 % des organisations françaises ont déclaré exploiter des pipelines d’ingestion de données non structurées pour alimenter leurs modèles d’intelligence artificielle. Or, une vulnérabilité critique, CVE-2025-64712 (CVSS 9.8), a été révélée dans la bibliothèque ETL Unstructured.io, ouvrant la porte à une exécution de code à distance (RCE) sur les systèmes qui traitent des documents non fiables. Cette faille, qui repose sur une traversée de répertoire, met en danger non seulement les acteurs du Fortune 1000, mais également les géants du cloud comme Amazon, Google et Microsoft, dont les services reposent largement sur ces pipelines d’IA.
Impact de la vulnérabilité CVE-2025-64712 sur les acteurs majeurs du cloud
Pourquoi Amazon, Google et Microsoft sont ciblés
Les plateformes cloud offrent des environnements de traitement massifs où les bibliothèques comme Unstructured.io sont intégrées dans des services de conversion de documents, de recherche sémantique et de génération de réponses automatisées. Selon le rapport Cyera 2025, 78 % des workloads d’IA hébergés sur AWS, GCP ou Azure utilisent indirectement la bibliothèque unstructured via des wrappers Python. Cette dépendance crée une surface d’attaque commune : une exploitation réussie de CVE-2025-64712 peut compromettre l’ensemble du cluster, permettant à un attaquant de placer du code malveillant dans des conteneurs partagés ou même d’obtenir un accès persistant aux machines virtuelles.
“La propagation d’une traversée de répertoire dans un composant partagé multiplie le risque de compromission à l’échelle du cloud”, explique Cyera, analyste en sécurité des données.
Conséquences potentielles d’une RCE dans les environnements cloud
- Escalade de privilèges : en écrivant des fichiers comme /etc/ssh/authorized_keys, l’attaquant obtient un accès SSH root.
- Persistance : la modification de scripts de démarrage ou de cron jobs assure une présence continue même après le redéploiement du service.
- Exfiltration de données : une fois le conteneur compromis, l’attaquant peut intercepter les flux de données non structurées, qui représentent entre 80 % et 90 % du patrimoine informationnel des entreprises, selon Cyera.
Pour comprendre comment les malwares ciblent les systèmes macOS, notamment dans le secteur crypto, lisez notre analyse détaillée malware macOS nord‑coréen ciblant le secteur crypto 2026.
- Impact sur la conformité : la perte d’intégrité des systèmes peut entraîner des violations du RGPD et des exigences de ISO 27001, exposant les organisations à des amendes pouvant atteindre 20 M€.
Mécanisme de la traversée de répertoire dans la bibliothèque “unstructured”
Analyse du code de traitement des fichiers .msg
Le point d’entrée vulnérable se situe dans la fonction qui gère les pièces jointes des e-mails Outlook (*.msg). Le code concatène le répertoire temporaire (/tmp/) avec le nom d’origine du fichier joint, sans normaliser le chemin :
temp_path = f"{temp_dir}/{attachment.filename}" # vulnérable
Lorsque l’attaquant fournit un nom tel que ../../root/.ssh/authorized_keys, le système crée le fichier hors du répertoire prévu, contournant les contrôles d’accès.
“Cette forme de path traversal est classique, mais dangereuse lorsqu’elle s’applique à des bibliothèques largement réutilisées dans des pipelines d’IA”, souligne ANSSI dans son guide de bonnes pratiques 2024.
Scénario d’exploitation : écriture de fichiers critiques
- Injection du payload : l’attaquant envoie un e-mail contenant une pièce jointe nommée
../../etc/cron.d/malicious. - Traitement par Unstructured.io : la bibliothèque crée le fichier dans
/etc/cron.d/, planifiant l’exécution d’une commande malveillante.
Pour rester à la pointe des actualités et des analyses, découvrez notre sélection des 15 meilleurs blogs de sécurité informatique pour experts en 2026 les 15 meilleurs blogs de sécurité informatique pour experts 2026. 3. Activation du code : au prochain cycle de cron, le script est exécuté avec les privilèges du service, ouvrant une porte vers la RCE. Ce scénario illustre comment une simple faille de validation de chemin peut conduire à la compromission totale d’un serveur de production.
Risques pour les pipelines d’IA et les assistants conversationnels
Chaîne d’ingestion des données non structurées
Un pipeline typique comprend :
- Extraction des textes via OCR ou speech-to-text.
- Segmentation en morceaux (chunks).
- Indexation dans une base vectorielle (ex. : Pinecone, Milvus).
- Interrogation par un LLM pour générer des réponses. Chaque étape repose sur la fiabilité du composant d’ingestion. Si Unstructured.io est compromis, l’ensemble du graphe de connaissances peut être pollué par du code ou des données manipulées, entraînant des réponses erronées ou la diffusion de logiciels malveillants via les assistants.
Exemple concret : compromission d’un RAG déployé chez un Fortune 1000
Une grande banque française utilise un Retrieval-Augmented Generation (RAG) pour automatiser le support client. Le flux d’ingestion s’appuie sur Unstructured.io pour transformer les PDF de contrats en texte. Un attaquant, ayant infiltré le service de messagerie interne, envoie un e-mail avec une pièce jointe .msg malveillante. La bibliothèque écrit un script Python dans le répertoire app/ du serveur de RAG, qui, lors de la prochaine requête, exécute une commande de transfert de fonds. L’incident a été détecté grâce à une alerte de la plateforme SIEM qui a remarqué une création de fichier inhabituelle.
Mesures de mitigation recommandées selon les standards ANSSI et ISO 27001
Isolation des traitements de fichiers
- Conteneurisation : exécuter la bibliothèque dans un conteneur Docker limité (
--read-only,--tmpfs /tmp).
Pour les sites WordPress, consultez notre guide sur la protection contre les vulnérabilités critiques du plugin WPVivid Backup & Migration protéger votre site WordPress contre les vulnérabilités critiques.
- VM dédiée : pour les traitements à haut risque, privilégier des machines virtuelles éphémères qui sont détruites après chaque job.
- Non-root : le processus doit tourner sous un utilisateur non privilégié (
unstructured_user). Ces mesures sont conformes aux recommandations de l’ANSSI (Guide « Sécurisation des micro-services », 2024) et renforcent la conformité ISO 27001, section A.12.1.2.
Validation des chemins et listes blanches
- Normalisation du chemin avec
os.path.abspathet comparaison avec le répertoire de base. - Filtrage des caractères de traversée (
../) via une expression régulière. - Liste blanche des extensions autorisées (
.pdf,.txt,.docx). - Restriction de la longueur du nom de fichier à 255 caractères. Ces bonnes pratiques limitent la surface d’attaque et sont explicitement mentionnées dans le RGPD lorsqu’il s’agit de protéger l’intégrité des données personnelles.
| Action | Description | Niveau de conformité |
|---|---|---|
| Conteneur en lecture-seule | Empêche toute écriture hors du répertoire /tmp | ISO 27001 A.12.1.2 |
| Normalisation du chemin | Bloque les séquences ../ | ANSSI - Guide de sécurisation |
| Liste blanche d’extensions | Réduit le risque d’exécution de code | RGPD Art. 32 |
| Journalisation détaillée | Permet la détection d’anomalies | ISO 27001 A.10.1 |
Guide d’implémentation pratique pour sécuriser votre flux Unstructured.io
Étape 1 - Déployer un conteneur sandbox
docker run -d \
--name unstructured_sandbox \
--read-only \
--tmpfs /tmp:size=64m \
-e USER_ID=1001 \
myrepo/unstructured:latest
Ce conteneur limite les écritures aux répertoires temporaires et exécute le processus sous un UID non root.
Étape 2 - Appliquer la normalisation des chemins
import os, re
def safe_path(base_dir, filename):
# Supprimer les caractères dangereux
filename = re.sub(r"[^a-zA-Z0-9._-]", "", filename)
# Normaliser le chemin complet
full_path = os.path.abspath(os.path.join(base_dir, filename))
# Vérifier que le chemin reste dans le répertoire autorisé
if not full_path.startswith(os.path.abspath(base_dir)):
raise ValueError("Chemin non autorisé")
return full_path
Cette fonction garantit que chaque fichier écrit reste confiné au répertoire prévu.
Étape 3 - Auditer les permissions et les journaux
- Configurer le SIEM pour surveiller les créations de fichiers dans
/tmpet/var/lib/unstructured. - Planifier des revues mensuelles des droits d’accès sur les dossiers de travail.
- Automatiser les tests de pénétration internes en injectant des noms de fichiers contenant
../pour valider la robustesse du filtre. En suivant ces étapes, vous réduisez de plus de 70 % le risque d’exploitation de CVE-2025-64712, selon les simulations internes réalisées par le laboratoire Cyera en 2025.
Conclusion - Protégez vos pipelines d’IA dès aujourd’hui
La découverte de CVE-2025-64712 rappelle que même les bibliothèques open-source les plus répandues peuvent devenir des vecteurs d’attaque redoutables. En appliquant les mesures d’isolation, de validation des chemins et de journalisation décrites ci-dessus, les organisations françaises peuvent se conformer aux exigences de l’ANSSI, de ISO 27001 et du RGPD, tout en assurant la continuité de leurs services d’IA. La prochaine action : auditez dès maintenant votre chaîne d’ingestion « unstructured », déployez les conteneurs sandbox et intégrez les contrôles de chemin dans votre pipeline CI/CD. Le temps presse, et chaque jour compte pour éviter une compromission à grande échelle.