1 min de lecture
Un serveur MCP malveillant n’a plus besoin d’envoyer une instruction ouvertement dangereuse pour voler vos clés SSH, votre .env ou votre code source. Il lui suffit de la découper en morceaux anodins, disséminés dans les canaux que votre agent de codage utilise déjà, pour qu’il la recolle tout seul.
Personne n’a besoin de convaincre l’agent de faire quelque chose de mal
On fragmente la requête malveillante en morceaux qui, lus séparément, ne ressemblent à rien de suspect ; on les dissémine dans des canaux que l’agent utilise déjà (description d’un outil MCP, résultat d’un outil, parfois du sampling initié par le serveur lui-même) ; et on laisse l’agent recombiner tout ça dans son propre contexte de travail. Le MCP maintient pourtant des frontières structurées entre outils et résultats. Les tests d’ASSET montrent que ça ne change rien du tout.
Lu séparément, aucun fragment ne contient le vol. Lu ensemble par l’agent, c’est une exfiltration complète.
En découpant la requête malveillante en deux morceaux plutôt qu’un seul, le taux de conformité moyen (comprendre : l’agent exécute l’exfiltration) passe de 42% à 82% sur les modèles testés via API. GPT-4o, Gemini 2.0 Flash et Llama 3.3 70B passent de 0% en requête monolithique à 100% dès qu’on scinde la requête en deux.
Dans la version longue, je reprends le mécanisme complet (outil anodin integrity_checker, mapping alpha/beta/gamma/delta, variante à trois canaux), le tableau des 15 modèles testés, l’analyse STRIDE, l’impact et les mitigations à mettre en place côté client MCP.
L'analyse détaillée part d'abord aux abonnés payants de ma newsletter Substack, avant d'être publiée intégralement ici.
Au Menu de la version abonnés, vous retrouvez la suite :
- le tableau complet des 15 modèles testés (avec les écarts qui font mal, 0% à 100% pour certains rien qu'en scindant la requête en deux) ;
- l'analyse STRIDE et l'impact détaillés ;
- les 5 mitigations concrètes à mettre en place côté client MCP ;
- un aperçu du contenu premium sur la validation des sorties d'outils et la détection de reconstruction d'instruction fragmentée ;
- et la sketchnote du PandaRedacteur résumant tout cela en anglais.
Articles lies
NemoClaw : une page web piégée suffit pour prendre le contrôle d'un agent Ollama local
Analyse de CVE-2026-65105 (NemoClaw, NVIDIA) découverte par Oasis Security : contournement des origin checks par DNS rebinding vers l'API non authe...
09/09/2026Mind viruses : quand l'agent infecté devient lui-même le vecteur de contamination
Analyse du preprint Anthropic/EPFL sur les mind viruses : des payloads auto-réplicants qui se propagent d'agent en agent via les fichiers de prompt...
07/09/2026Agent harness : le code autour du modèle qui décide si votre agent est fiable ou pas
Qu'est-ce qu'un agent harness ? Définition, boucle d'exécution, état de l'art août 2026 (Pi, DeepSeek Harness, OpenCode, OpenHands, Deep Agents, Mi...
03/09/2026Comment and Control : une issue GitHub sans aucun droit suffit à voler les secrets de votre CI
Analyse des CVE-2026-54316 (Claude Code) et CVE-2026-12537 (Gemini CLI, CVSS 10.0) présentées à Black Hat USA 2026 : vol de secrets CI via prompt i...
01/09/2026Quand un agent se fait passer pour un collaborateur
Analyse du confused deputy agent-à-agent dans le dépôt Google ADK for Python : chaîne issue-analyze.yml vers issue-fix.yml, contournement de l'allo...
31/08/2026