MCP d'Anthropic — un défaut de conception expose 200 000 instances à l'exécution de code distante
Tu as installé Cursor ou Windsurf sur ton Mac pour développer avec un assistant LLM. Tu as ajouté quelques serveurs MCP, un pour ta DB, un pour ton API, un pour les fichiers locaux. Cette stack qui te semble faite “à la maison” est en réalité bâtie sur un protocole dont l’interface principale considère que n’importe quelle configuration peut exécuter n’importe quelle commande shell. Et selon OX Security, ce n’est pas un bug : c’est l’interprétation officielle d’Anthropic.
Ce qui se passe
Le 15 avril 2026, l’équipe de recherche d’OX Security publie un rapport intitulé “The Mother of All AI Supply Chains”. Le constat : le Model Context Protocol (MCP) d’Anthropic — protocole standard pour brancher des outils, données et services à un LLM — contient une faille architecturale dans son interface STDIO. La configuration peut directement déclencher l’exécution de commandes système arbitraires, sans contrôle, sans sanitization (validation des entrées), sans isolation par défaut.
Les chiffres documentés par OX :
- 7 000+ serveurs MCP publics indexés
- 150 millions+ de téléchargements des SDKs et serveurs concernés
- ~200 000 instances estimées vulnérables
- 10 CVE émis (statut patché ou pending)
- Validation pratique : commandes exécutées avec succès sur 6 plateformes en production
Les CVE notables :
- CVE-2026-30615 (Windsurf, reporté) : prompt injection via HTML malveillant menant à RCE locale, CVSS 8.0 (HIGH).
- CVE-2026-30623 (LiteLLM, patché) : RCE authentifié via configuration JSON.
- CVE-2025-65720 (GPT Researcher, reporté) : UI injection menant à reverse shell.
- Et d’autres sur LangFlow, Flowise, DocsGPT, Bisheng, Agent Zero, Fay Framework, Langchain-Chatchat, Upsonic.
OX décrit quatre familles d’attaque distinctes, toutes exploitant la même primitive : la conversion configuration → commande sans frontière.
La position d’Anthropic, telle que rapportée par OX et confirmée par des reprises (THN, devops-daily) : le comportement est “by design”. Le modèle d’exécution STDIO est jugé “secure default” si l’utilisateur fait son boulot de sanitization. Anthropic refuse de modifier le protocole.
Pourquoi c’est important pour toi
Tu n’es pas un opérateur de cloud LLM, tu n’as pas 50 000 serveurs MCP publics. Mais si tu es lecteur de MacSouverain, il est très probable que :
- Tu utilises Cursor, Windsurf ou Claude Desktop sur ton Mac, les trois disposent d’intégrations MCP officielles, écrites avec les SDKs vulnérables Anthropic.
- Tu as branché 1 ou 2 serveurs MCP, typiquement un MCP filesystem, un MCP DB, un MCP shell, un MCP Notion. Chacun d’eux est une surface d’attaque potentielle.
- Tu as importé une configuration MCP partagée, un gist GitHub, un fichier
claude_desktop_config.jsonvenu d’un repo public, un export d’un collègue. C’est exactement le vecteur principal : la config peut déclencher l’exécution.
L’argument “by design” d’Anthropic est défendable techniquement (un protocole n’est pas un sandbox). Mais Anthropic transfère la responsabilité du sandboxing aux développeurs en aval, dans un contexte où :
- Les utilisateurs grand public adoptent Claude Desktop sans formation devsec.
- Les SDKs officiels sont publiés sans documentation de mitigation pré-installée.
- Les patches viennent des outils en aval (Cursor, Windsurf, etc.), pas du protocole lui-même.
Ce que tu dois faire
Immédiat (cette semaine) :
-
Inventorie tes MCPs actifs. Sur Cursor : Settings → MCP. Sur Claude Desktop :
~/Library/Application Support/Claude/claude_desktop_config.json. Sur Windsurf : check la liste depuis l’IDE. Désactive tout MCP que tu n’as pas déployé toi-même ou validé en lisant son code source. -
Mets à jour Cursor, Windsurf, et tous les outils LLM-natifs vers les versions patchées (≥ avril 2026). Vérifie via les release notes que la CVE concernée est explicitement corrigée.
-
Audit des configurations partagées : si tu as récupéré une config MCP depuis un dépôt public, un Slack pro, un gist, un Discord, lis-la intégralement avant de l’activer. Les chemins exécutables, les commandes, les variables d’environnement. Une configuration MCP, c’est un script shell déguisé.
Dans la semaine :
-
Pour les MCPs filesystem ou shell que tu gardes : limite leur portée au strict minimum. Pas de chemin
/ni~. Donne le sous-dossier précis du projet courant. -
Pour les MCPs qui tournent comme serveur HTTP local : vérifie que le port n’est pas bind sur
0.0.0.0. Doit être127.0.0.1. Sinon une page web malveillante via navigateur peut déclencher l’exécution.
À surveiller :
-
La position d’Anthropic peut évoluer si la pression communautaire grimpe. Surveille les release notes du SDK MCP officiel (
@modelcontextprotocol/sdksur npm,mcpsur PyPI) pour un éventuel mode “strict” ou “sanitize-by-default”. -
Les outils tiers (Cursor, Windsurf, Claude Desktop) peuvent ajouter des couches de sandboxing, vérifie leur documentation sécurité dans les semaines à venir.
Sources
- OX Security — “The Mother of All AI Supply Chains: Critical, Systemic Vulnerability at the Core of Anthropic’s MCP” — 15 avril 2026 — https://www.ox.security/blog/the-mother-of-all-ai-supply-chains-critical-systemic-vulnerability-at-the-core-of-the-mcp/
- OX Security — “MCP Supply Chain Advisory: RCE Vulnerabilities Across the AI Ecosystem” — 15 avril 2026 — https://www.ox.security/blog/mcp-supply-chain-advisory-rce-vulnerabilities-across-the-ai-ecosystem/
- The Hacker News — “Anthropic MCP Design Vulnerability Enables RCE, Threatening AI Supply Chain” — 20 avril 2026 — https://thehackernews.com/2026/04/anthropic-mcp-design-vulnerability.html
- DevOps Daily — “The MCP Design Flaw That Exposes 150M Downloads to RCE” — 15 avril 2026 — https://devops-daily.com/posts/mcp-design-flaw-rce-supply-chain-risk