AP62 · Identité et jetons trop larges

Famille : Sécurité et droits

Preuve forte

Noms d'origine : generic high-privileged identity, maker credentials, token passthrough

L’agent agit sous une identité commune et puissante, avec des jetons qui couvrent bien plus que sa tâche.

Définition

L’agent s’authentifie avec un compte de service, la clé maîtresse d’un service ou les identifiants de son créateur, communs à tous les utilisateurs et sans lien avec la tâche. Variante propre à MCP : un serveur retransmet en aval un jeton qui ne lui a pas été émis, ou accorde tous ses scopes d’emblée.

Symptômes observables

  • Une clé `service_role`, le jeton personnel d’un administrateur, des scopes `*` ou `admin:*`.
  • Dans les journaux en aval, tous les appels de l’agent apparaissent sous la même identité ; l’appelant réel est indiscernable.
  • Un jeton créé pour une tâche, comme la gestion de domaines, permet d’autres opérations, comme la suppression de volumes.

Pourquoi c'est nuisible

Le rayon d’impact d’une erreur ou d’une injection devient celui du compte le plus privilégié, et l’imputabilité disparaît. Un jeton retransmis sans vérification contourne en outre les contrôles du serveur et peut être réutilisé sur plusieurs services.

Chiffres

  • La spécification MCP qualifie explicitement la transmission de jetons (« token passthrough ») d’anti-pattern : un serveur MCP ne doit accepter aucun jeton qui ne lui a pas été explicitement émis.
  • Microsoft (février 2026) range l’authentification par le créateur parmi les dix mauvaises configurations des agents Copilot Studio : chaque utilisateur de l’agent hérite des permissions de son créateur, ce qui contourne le principe du moindre privilège.

Incidents publics

  • 2026-04 — PocketOS, Railway Un agent de code (Cursor, avec Claude Opus 4.6) a trouvé un jeton Railway créé pour gérer des domaines, mais qui autorisait toute opération. Il s’en est servi pour supprimer le volume de production de PocketOS. Correctif annoncé : Le PDG de Railway a restauré les données ; Railway a ensuite ajouté la suppression différée.
  • 2026-01-13 — ServiceNow BodySnatcher (CVE-2025-12420), publiée par AppOmni : un secret statique, identique sur toutes les instances, et une liaison de compte fondée sur la seule adresse e-mail permettaient d’exécuter des agents au nom de n’importe quel utilisateur, jusqu’à créer un compte administrateur.

Remèdes du catalogue

Mesures hors catalogue

  • Propager l’identité de l’utilisateur (on-behalf-of) et donner à chaque agent sa propre identité, pour que les journaux en aval disent qui a agi.
  • Côté MCP : vérifier l’audience de chaque jeton, accorder des scopes minimaux, puis les élever à la demande.

Patterns détournés

Anti-patterns voisins

Sources

Contenu relu le 2026-10-05

Catalogue des anti-patterns