AP59 · Trifecta létale en autonomie
Famille : Sécurité et droits
Preuve forte
Noms d'origine : lethal trifecta, Rule of Two violation
Un même agent lit du contenu non fiable, touche aux données privées et peut émettre, sans que personne n’approuve.
Définition
Un agent sans supervision réunit trois capacités : lire du contenu non fiable, accéder à des données privées, et communiquer vers l’extérieur ou changer un état. Ensemble, elles suffisent à exfiltrer.
Symptômes observables
- Une même session réunit un outil qui lit du contenu externe (web, e-mail, tickets, issues publiques), un outil d’accès aux données internes et un outil d’émission (e-mail, PR, requête HTTP, image).
- Aucun de ces appels n’est soumis à approbation.
- Le jeton de l’agent couvre bien plus que la tâche : tous les dépôts du développeur, toute la base.
Pourquoi c'est nuisible
Pour le modèle, toute donnée lue peut devenir une instruction. Un texte piégé arrive par le premier outil, le deuxième ramasse les données, le troisième les envoie. Le défaut tient à la combinaison des outils et des droits, pas au code de l’un d’eux : aucun serveur ne peut le corriger seul.
Chiffres
- Casser la trifecta coûte peu d’utilité : CaMeL résout 77 % des tâches AgentDojo avec une sécurité prouvable, contre 84 % pour un système sans défense.
Incidents publics
- 2025-05-26 — GitHub (serveur MCP) Démonstration d’Invariant Labs : une issue publique piégée amène un agent, branché sur le serveur MCP de GitHub avec l’accès du développeur, à lire ses dépôts privés puis à publier leur contenu dans une pull request. Pour les chercheurs, c’est un problème d’architecture et non un défaut du code du serveur : GitHub ne peut pas le corriger de son côté.
- 2025-07 — Supabase (serveur MCP) Démonstration de General Analysis : un ticket de support piégé, lu dans Cursor par un agent branché sur le serveur MCP de Supabase, lui fait lire la table `integration_tokens`, puis écrire son contenu dans le fil du ticket, que l’attaquant peut lire. Correctif annoncé : Supabase a ensuite documenté un mode lecture seule (`read_only=true`) et des groupes d’outils activables séparément.
Remèdes du catalogue
- G6 · Règle de deux — Vérifier, outil par outil, qu’aucune session autonome ne réunit les trois propriétés ; quand les trois sont nécessaires, couper le travail en deux sessions, avec un contexte neuf.
- G4 · Double LLM (et CaMeL) — Le modèle qui lit l’issue ou le ticket n’a aucun outil ; le modèle privilégié ne voit que des valeurs marquées comme non fiables.
- G2 · Plan figé avant contact — Fixer le plan d’actions à partir de la seule demande, avant de lire le contenu externe.
- F1 · Humain dans la boucle — Soumettre à approbation le seul outil d’émission : l’envoi, la PR, la requête sortante.
Mesures hors catalogue
- Un jeton limité à la tâche : un seul dépôt, ou une base en lecture seule.
Patterns détournés
Anti-patterns voisins
Sources
- The lethal trifecta for AI agents: private data, untrusted content, and external communication — Simon Willison, 2025-06-16
- GitHub MCP Exploited: Accessing private repositories via MCP — Invariant Labs (M. Milanta, L. Beurer-Kellner), 2025-05-26
- Supabase MCP can leak your entire SQL database — General Analysis, 2025-07-08
- Agents Rule of Two: A Practical Approach to AI Agent Security — Meta, 2025-10-31
- Defeating Prompt Injections by Design — Debenedetti et al. (Google DeepMind), arXiv, 2025-03
Contenu relu le 2026-10-05