AP19 · Outil à fonctionnalité excessive
Famille : Outils et interface agent-machine
Preuve moyenne
Noms d'origine : excessive functionality, excessive agency, open-ended extensions
Un outil ouvert (SQL brut, shell, HTTP libre) là où la tâche n’exige que quelques actions bornées.
Définition
On expose un outil générique (SQL brut, shell, client HTTP libre, API complète) alors que la tâche n’exige que quelques opérations précises. L’agent peut faire bien plus que ce pour quoi il a été conçu.
Symptômes observables
- Des outils `execute_sql`, `run_shell` ou `http_request` sans liste blanche.
- Une connexion en lecture-écriture pour une tâche de lecture.
- Des extensions de développement restées branchées.
- Un outil de résumé de tickets capable d’écrire dans la base.
Pourquoi c'est nuisible
La surface d’action dépasse la tâche : une injection ou une simple erreur trouve l’outil et s’en sert. Avec un outil ouvert, aucune règle déterministe ne borne ce que l’agent peut faire ; seule la consigne le retient.
Un choix défendable quand…
- Un agent de code dans un bac à sable jetable, sans secrets, sans données sensibles ni accès à la production.
Chiffres
- L’OWASP distingue trois causes d’agentivité excessive (fonctionnalité, permissions et autonomie excessives) et recommande de limiter les extensions au strict nécessaire et d’éviter les extensions ouvertes.
Incidents publics
- 2025-07 — Supabase Démonstration publiée par General Analysis : dans Cursor, un agent relié à une base par le serveur MCP de Supabase lit un ticket de support piégé, interroge la table `integration_tokens` et recopie son contenu dans le fil du ticket, visible de l’attaquant. Correctif annoncé : Supabase a ensuite documenté un mode `read_only=true` et des groupes d’outils activables.
Remèdes du catalogue
- A2 · Outils et interface agent-machine (ACI) — Des outils métier fermés (« lire le ticket », « ajouter un commentaire ») à la place d’un accès SQL ou shell générique.
- G1 · Sélecteur d’actions — L’agent choisit dans une liste fermée d’actions, dont le code valide les paramètres.
- C4 · Agent qui agit en code — Le code arbitraire ne s’exécute que dans un bac à sable sans secrets ni accès à la production.
Mesures hors catalogue
- Un mode lecture seule par défaut, et des groupes d’outils activés seulement quand la tâche le demande.
- Une identité propre à l’agent, limitée aux droits de la tâche.
Patterns détournés
Anti-patterns voisins
Sources
- LLM06:2025 Excessive Agency — OWASP GenAI Security Project, 2025
- Supabase MCP can leak your entire SQL database — General Analysis, 2025-07-08
Contenu relu le 2026-10-05