01Tool Poisoning
Des descriptions de Tools ou des métadonnées manipulées peuvent contenir des instructions cachées qui incitent le modèle à des actions involontaires ou à l'exfiltration de données. Comme contre-mesures interviennent des manifestes de Tools signés, un processus de validation formel et la confrontation de la fonction annoncée avec le comportement réel à l'exécution. Seuls les champs strictement nécessaires sont exposés au modèle.
02Dynamic Tool Instability (« Rug Pulls »)
Parce que les définitions de Tools sont chargées dynamiquement et rarement versionnées de façon stricte, une définition préalablement vérifiée peut être remplacée après coup par un comportement malveillant. Des signatures cryptographiques et le version pinning, avec vérification de la signature et du hash au chargement, empêchent de telles modifications inaperçues.
03Code Injection et exécution non sécurisée
Si des entrées fournies par le modèle sont transmises sans vérification à des commandes système, des API ou des requêtes de base de données, l'injection et l'exécution de code non désirée menacent. Imposez une validation par JSON-Schema pour les entrées et les sorties, des appels de Tools JSON structurés plutôt que du texte libre, ainsi qu'une sanitisation et des limites de taille. Pour les actions à haut risque s'ajoutent des validations Human-in-the-Loop.
04Abus de credentials et de tokens
Les serveurs MCP gèrent souvent des clés d'API et des tokens OAuth ; un stockage non sécurisé, une journalisation en clair ou une mise en cache trop longue permettent le vol et l'usurpation d'identité. Les secrets doivent résider dans des secrets vaults, jamais dans des variables d'environnement, des logs ou la zone d'accès du LLM. En complément s'appliquent des tokens à courte durée de vie et étroitement scopés, ainsi que le renoncement au Token Passthrough vers les services en aval.
05Excessive Permissions
Des Tools surprivilégiés et des scopes d'accès trop larges accroissent les dommages d'un seul Tool compromis et enfreignent le principe du Least Privilege. Le guide exige OAuth 2.1/OIDC avec des tokens à courte durée de vie et étroitement scopés, la délégation de tokens (RFC 8693) plutôt que le passthrough, ainsi qu'une application centralisée des policies via une couche de passerelle dédiée.
06Isolation insuffisante
Des sessions communes, des identités partagées ou un environnement d'exécution commun conduisent à des fuites inter-locataires (cross-tenant), à des confusions d'identité et à des conflits de ressources. Isolez strictement les contextes utilisateur, de session et de calcul, renoncez à tout état partagé pour les données utilisateur et imposez des quotas par session avec un nettoyage déterministe. L'exploitation se fait de manière conteneurisée, en non-root et avec segmentation réseau.