CVE-2026-45497 : une injection de commande transforme Microsoft 365 Copilot en surface RCE
Le 4 juin 2026, le MSRC a publié CVE-2026-45497, une injection de commande dans Microsoft 365 Copilot classée en exécution de code à distance, avec un changement de portée franchissant la frontière du service. Corrigée côté serveur.
De quoi s’agit-il ?
Le 4 juin 2026, le Microsoft Security Response Center a publié CVE-2026-45497, une vulnérabilité de Microsoft 365 Copilot que le MSRC classe comme neutralisation incorrecte d’éléments spéciaux dans une commande — une injection de commande classique — conduisant à une exécution de code à distance. L’avis porte la marque d’un changement de portée (scope changed), ce qui signifie que la faille permettait à un attaquant de sortir du conteneur de service Copilot pour atteindre d’autres composants Microsoft 365. Microsoft indique que le problème a déjà été corrigé dans son cloud et qu’aucune action client n’est requise. Le même lot comprenait deux entrées de divulgation d’information : CVE-2026-47644 (Copilot Chat dans Microsoft Edge) et CVE-2026-42824 (Microsoft 365 Copilot).
C’est notable parce que c’est la première fois que l’avis d’un assistant IA grand public décrit une RCE avec franchissement de conteneur, et non « seulement » la classe d’exfiltration de données qui domine les découvertes sur Copilot depuis CVE-2025-32711 « EchoLeak » un an plus tôt.
Comment ça marche
Aucun exploit n’est public, et aucun n’est reproduit ici. Ce que la classification du MSRC nous apprend, c’est la forme du bug : quelque part dans le chemin d’exécution des outils/skills de Copilot, du texte sous influence d’un attaquant a atteint un composant qui construit et exécute une commande, sans assainissement suffisant.
Pour un assistant IA, le point d’entrée réaliste de ce texte est l’injection de prompt. Copilot ingère par conception du contenu non fiable — e-mails, documents partagés, invitations d’agenda, pages web tirées dans le contexte. Si l’un de ces contenus peut amener le modèle à invoquer un outil dont les arguments sont concaténés dans un appel shell ou interpréteur, la porte d’entrée en langage naturel devient une porte d’entrée d’injection de commande :
Untrusted content (email / doc / page)
| retrieved into Copilot context
v
Injected instruction -> model calls a backend tool
| tool arg concatenated into a command
v
Command injection -> code execution in the service
| S:C (scope change)
v
Reach into adjacent M365 components
Le « changement de portée » est l’élément sur lequel les défenseurs doivent s’arrêter : il signifie que le rayon d’impact n’était pas confiné à la requête qui l’a déclenché.
Pourquoi c’est important
Copilot est intégré à Word, Excel, Outlook, Teams et SharePoint pour une base installée très large en entreprise. Un bug d’exécution de commande dans ce service n’est pas un problème mono-locataire ; le changement de portée indique que la frontière censée tenir une requête — et potentiellement le contexte d’un locataire — à l’écart du reste de la plateforme n’a pas tenu.
La leçon de fond est architecturale. L’industrie a passé l’année écoulée à traiter le risque « type Copilot » comme de la divulgation d’information (EchoLeak, injection de prompt dans Copilot Studio). CVE-2026-45497 montre que le même problème d’entrée non fiable peut atterrir plus bas dans la pile, au niveau de l’exécution de code, dès qu’un agent est autorisé à transformer la sortie du modèle en commande. Le « trio létal » de l’OWASP — entrée non fiable, accès sensible, et capacité de sortie ou d’exécution — c’est exactement cette combinaison.
Défenses
Microsoft a corrigé côté service : il n’y a donc pas de correctif à installer. Le travail consiste à s’assurer que vos propres agents et toute extension Copilot maison ne reproduisent pas le schéma.
- Ne jamais concaténer la sortie du modèle dans une commande. Passez les arguments d’outil par des API structurées et paramétrées ; évitez shell,
evalou les appels d’interpréteur construits par concaténation. Si un outil doit exécuter une commande, utilisez une liste blanche de vecteurs d’arguments figés. - Traiter tout contenu récupéré comme non fiable. Documents, e-mails et pages web tirés dans le contexte sont contrôlables par l’attaquant. Appliquez-leur la même discipline d’entrée qu’à un formulaire web.
- Contraindre le trio. Ne donnez pas à un même agent, simultanément, une entrée non fiable, des outils privilégiés et une voie d’exécution ou d’exfiltration. Séparez les capacités, ou placez les outils exécutant des commandes derrière une confirmation humaine.
- Cloisonner et limiter la portée de l’exécution. Exécutez les outils capables de lancer des commandes dans un contexte isolé et à moindre privilège, pour qu’une injection réussie ne puisse pas changer de portée vers les systèmes adjacents.
- Auditer dès maintenant plugins et connecteurs personnalisés. Même si le service de base est corrigé, la même classe de bug vit dans les extensions Copilot maison. Repérez tout endroit où du texte du modèle atteint un constructeur de commande, et faites tourner les secrets que ces plugins détiennent.
- Journaliser les invocations d’outils, pas seulement le chat. La détection de cette classe passe par la surveillance des outils backend appelés par le modèle et de leurs arguments — les transcriptions de chat seules ne révèlent pas une tentative d’injection de commande.
Statut
| Élément | Référence | Date | Notes |
|---|---|---|---|
| CVE-2026-45497 (M365 Copilot) | MSRC | 2026-06-04 | Injection de commande -> RCE, portée changée ; corrigé côté serveur, aucune action client |
| CVE-2026-47644 (Copilot Chat, Edge) | MSRC | 2026-06-04 | Divulgation d’information |
| CVE-2026-42824 (M365 Copilot) | MSRC | 2026-06-04 | Divulgation d’information |
| CVE-2025-32711 « EchoLeak » | MSRC | 2025-06 | Exfiltration zero-click antérieure sur M365 Copilot, pour contexte |
Les sources publiques divergent sur le score CVSS exact de CVE-2026-45497 ; nous omettons donc un chiffre unique, l’avis du MSRC faisant foi. La conclusion tient quel que soit le score : un assistant IA capable de transformer du texte non fiable en commande est une surface RCE, et le travail défensif consiste à tenir la sortie du modèle à l’écart des constructeurs de commandes.
Sources
- → https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45497
- → https://vulnerability.circl.lu/vuln/msrc_cve-2026-45497
- → https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47644
- → https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42824
- → https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-32711