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

Contenu relu le 2026-10-05

Catalogue des anti-patterns