CVE-2025-64712 : comment la faille d’Unstructured.io menace Amazon, Google et les géants du cloud
Isidore Bellemare
En 2026, une vulnérabilité critique désignée sous le numéro CVE-2025-64712 a secoué le monde de la cybersécurité. Cette faille, notée 9.8 sur l’échelle CVSS, affecte la bibliothèque ETL « unstructured » d’Unstructured.io, largement utilisée pour transformer des documents bruts en texte exploitable par les modèles d’IA générative. Si vous traitez des fichiers non fiables - PDFs, e-mails, présentations - le risque d’exécution de code à distance (RCE) devient réel, surtout dans les environnements cloud de grande ampleur comme ceux d’Amazon, Google ou Microsoft. Dans cet article, nous décortiquons le mécanisme de la faille, ses impacts concrets sur les pipelines RAG, et les mesures à mettre en place dès aujourd’hui pour protéger votre infrastructure.
Pourquoi la vulnérabilité CVE-2025-64712 est critique pour les acteurs du cloud
La bibliothèque unstructured agit comme un pont entre des données non structurées (PDF, e-mail, images) et des bases de vecteurs capables d’alimenter les assistants d’IA. Selon Cyera, plus de 85 % des pipelines RAG (Retrieval-Augmented Generation) en production s’appuient sur cette bibliothèque, que ce soit dans des projets internes ou via des services managés. Une traversée de chemin (path traversal) dans ce contexte signifie que le code peut écrire n’importe quel fichier sur le disque, ouvrant la porte à des escalades de privilèges et à l’installation de portes dérobées.
« Le danger d’une vulnérabilité de type path traversal réside dans sa capacité à sortir du sandbox prévu et à toucher le système d’exploitation hôte », explique l’ANSSI dans son rapport annuel 2025.
En pratique, un attaquant peut modifier le nom d’une pièce jointe .msg afin d’injecter des séquences comme ../../root/.ssh/authorized_keys. Le processus d’extraction crée alors un fichier dans /root/.ssh/, remplaçant la clé autorisée par du code malveillant et obtenant un accès persistant. Dans un environnement cloud partagé, l’impact se propage rapidement, compromettant des dizaines de micro-services et de bases de données.
Impact sur les pipelines d’IA générative et le traitement des données non structurées
Fonctionnement de la bibliothèque “unstructured”
Unstructured.io propose deux offres : une version open-source et une version SaaS gérée. Les deux implémentent les mêmes fonctions de parsing, d’extraction OCR, et de splitting des documents en chunks, avant d’insérer les vecteurs dans un vector database tel que Pinecone ou Milvus. Le flux typique est :
- Récupération du fichier depuis un stockage (S3, Google Drive, OneDrive).
- Décompression et création d’un répertoire temporaire.
- Extraction du texte ou des métadonnées.
- Envoi des embeddings vers le moteur de recherche vectoriel.
Le point faible se situe à l’étape 2, où le chemin du répertoire temporaire est construit en concaténant le répertoire de base avec le nom d’origine du fichier, sans validation adéquate.
Scénario d’exploitation typique
Imaginons un service de support client qui automatise l’analyse des e-mails entrants via un pipeline RAG. Un cyber-criminel envoie un e-mail contenant une pièce jointe nommée ../../etc/passwd. Le service, configuré pour accepter toutes les pièces jointes, déclenche le parser Unstructured.io qui crée le fichier /tmp/../../etc/passwd. Le système, en respectant les permissions du conteneur, écrase le fichier /etc/passwd ou crée un nouveau fichier contenant du code malveillant. Si le conteneur tourne en mode non-root, l’attaquant peut tout de même écrire dans des volumes montés en lecture-écriture, compromettant les micro-services adjacents.
« Dans la pratique, la plupart des implémentations de pipelines RAG ne prévoient pas de sandboxing granulaire pour chaque fichier traité », souligne Divya, journaliste senior chez GBHackers.
Risques spécifiques pour les géants du cloud (Amazon, Google, Microsoft)
Cas d’usage dans les environnements Fortune 1000
Les entreprises du Fortune 1000 utilisent massivement les services de stockage d’Amazon S3, Google Cloud Storage et Azure Blob pour héberger des millions de documents. Un pipeline RAG intégré à ces plateformes consomme quotidiennement des téraoctets de données non structurées. Une faille comme CVE-2025-64712 peut donc toucher :
- Les fonctions Lambda ou Cloud Functions qui invoquent Unstructured.io pour pré-traiter les documents.
- Les services de Data Lake qui exécutent des jobs Spark ou Dataproc avec le même code.
- Les environnements de développement continu où les artefacts sont testés automatiquement.
Dans un scénario hypothétique, un attaquant compromettant un bucket S3 public pourrait déposer un fichier malveillant. Le pipeline, déclenché automatiquement, écrirait alors dans le répertoire /var/task/ du conteneur Lambda, injectant du code qui sera exécuté à chaque invocation, compromettant ainsi l’ensemble du compte AWS.
Conséquences pour la conformité et la confiance client
Outre le risque opérationnel, une exploitation réussie viole plusieurs référentiels :
- ISO 27001 exige la maîtrise des accès aux systèmes d’information.
- RGPD impose la protection des données à caractère personnel, et toute fuite due à une faille RCE entraîne des sanctions pouvant atteindre 4 % du chiffre d’affaires annuel. malware macos nord coreen menace vos actifs cryptographiques
- Les recommandations de l’ANSSI insistent sur la segmentation des environnements de traitement de fichiers non fiables. les 15 meilleurs blogs de sécurité informatique à suivre en 2026
Méthodes de mitigation et bonnes pratiques de sécurisation
Tableau comparatif des stratégies de protection
| Stratégie | Avantages | Inconvénients | Niveau de mise en œuvre |
|---|---|---|---|
| Isolation par conteneur (Docker) | Limite la portée d’une compromission | Nécessite une orchestration fiable | Moyen |
| Exécution en tant qu’utilisateur non-root | Réduit les privilèges d’écriture | Peut impacter certaines bibliothèques | Faible |
| Normalisation du chemin (basename) + allow-list | Empêche les séquences ../ | Doit être maintenu à jour | Élevé |
| Utilisation d’un service de sandboxing dédié (e.g., Firecracker) | Sécurité forte, isolation hardware | Coût opérationnel plus élevé | Élevé |
| Validation du nom de fichier via regex strict | Simple à implémenter | Risque de faux positifs | Faible |
Liste de contrôles à appliquer immédiatement
- Bloquer toute écriture de fichiers dont le nom provient d’une source externe sans validation.
- Activer le mode
read-onlysur les volumes partagés entre le pipeline et le stockage persistant. - Déployer les processus de parsing dans des conteneurs éphémères, détruits après chaque job.
- Auditer les logs d’accès aux répertoires temporaires pour détecter des tentatives de traversée.
- Mettre à jour la bibliothèque unstructured vers la version corrigée (≥ 2.3.1) dès qu’elle est disponible. protéger votre site WordPress
Exemple de code de normalisation (Python)
import os
import pathlib
def safe_join(base_dir: str, filename: str) -> str:
# Conserver uniquement le nom de base du fichier
safe_name = os.path.basename(filename)
# Résoudre le chemin complet et le normaliser
full_path = pathlib.Path(base_dir) / safe_name
# Vérifier que le chemin reste dans le répertoire de base
if not str(full_path).startswith(os.path.abspath(base_dir)):
raise ValueError("Tentative de traversée de chemin détectée")
return str(full_path)
Ce fragment évite l’injection de séquences ../ en ne conservant que le basename du fichier et en s’assurant que le chemin résolu reste dans le répertoire prévu.
Guide de mise en œuvre : étapes concrètes pour sécuriser votre pipeline
- Inventorier toutes les instances d’Unstructured.io dans votre architecture (services Lambda, jobs Spark, conteneurs Docker, etc.).
- Planifier la migration vers des environnements isolés : créez des images Docker dédiées qui exécutent le parser en tant qu’utilisateur
nobody. - Intégrer le filtre de validation de nom de fichier (exemple ci-dessus) dans le code d’appel avant chaque extraction.
- Déployer les correctifs dès leur sortie : surveillez le dépôt GitHub officiel et configurez des alertes de sécurité sur les versions.
- Tester les scénarios d’attaque en interne : utilisez des fichiers .msg contenant des chemins
../../pour vérifier que la protection fonctionne. - Documenter les procédures d’escalade et de réponse incident, en alignement avec les exigences de l’ANSSI et du CIS Benchmarks.
Checklist de validation post-déploiement
- Tous les conteneurs tournent sous un UID non-root.
- Aucun fichier temporaire n’est créé en dehors du répertoire
/tmp/unstructured/. - Les logs de
safe_joinaffichent « validation réussie » pour chaque fichier traité. - Les alertes de sécurité CloudWatch/Stackdriver détectent zéro tentative de traversée.
Conclusion : quelles actions prioritaires pour 2026 ?
La découverte de CVE-2025-64712 rappelle que les chaînes d’approvisionnement logicielles, même open-source, constituent des vecteurs de risque majeurs pour les géants du cloud. En 2026, la priorité doit être donnée à :
- L’isolation systématique des processus de traitement de documents non fiables.
- La mise à jour immédiate des bibliothèques concernées.
- La mise en place de validations strictes du nom de fichier et de la normalisation de chemin.
En adoptant ces mesures, vous réduisez le risque d’exécution de code à distance et vous alignez votre organisation sur les meilleures pratiques de l’ANSSI, de l’ISO 27001 et du RGPD. Le temps presse : chaque jour sans protection augmente la surface d’exposition aux acteurs malveillants qui ciblent les pipelines d’IA générative. Agissez dès maintenant pour sécuriser votre chaîne de valeur de données non structurées.