Le 15 avril 2026, The Register a rapporté que le chercheur en sécurité Aonan Guan avait réussi à détourner des agents d'IA de trois sociétés distinctes – Anthropic, Google et GitHub – en utilisant la même classe d'attaque contre chacune d'entre elles, en payant des primes de bug silencieuses de la part des trois et en n'ayant reçu aucune mission CVE, aucun avis public et aucune divulgation d'aucune sorte aux utilisateurs exécutant d'anciennes versions des outils concernés.
L’attaque s’appelle « commentaire et contrôle ». Le nom est un jeu délibéré sur « commandement et contrôle ». Et le fait que cela ait affecté simultanément Claude Code, Gemini CLI et Copilot Agent – le tout via l'infrastructure native de GitHub, sans qu'aucun serveur d'attaque externe ne soit requis – en fait l'une des illustrations les plus claires du problème du modèle de sécurité dans l'IA agentique qui existe depuis des années et reste largement non résolu.
L'injection d'invite indirecte est une classe d'attaque dans laquelle des instructions malveillantes sont intégrées dans du contenu qu'un agent d'IA est conçu pour lire et approuver — non fournies directement par l'utilisateur, mais trouvées dans des documents, des descriptions de problèmes, des titres de demandes d'extraction, des commentaires de code ou toute autre surface que l'agent analyse au cours de sa tâche. Contrairement à l'injection d'invite directe (qui nécessite l'accès à l'invite système), l'injection indirecte exploite la surface de lecture de l'agent : toutes les données que l'agent ingère et traite comme contexte d'instruction. Dans le contexte de GitHub Actions, la surface d'attaque est l'intégralité du flux d'événements du référentiel (titres de relations publiques, corps de problèmes, commentaires de révision) et contenu que les agents ont été conçus pour consommer et que les développeurs traitent rarement comme une limite de sécurité. La gouvernance agent au niveau de la couche de contenu signifie intercepter et évaluer ce contenu avant que l'agent n'agisse dessus, et non après l'exécution de l'instruction injectée.
Les attaques démontrées par Guan partagent une structure. Un agent IA se voit confier une tâche qui nécessite la lecture du contenu GitHub : une pull request à examiner, un problème à trier, une base de code à analyser. Dans ce contenu, Guan a intégré des instructions que l'agent n'était pas censé suivre, mais il l'a fait. L'attaque ne nécessite aucun accès spécial, aucune compromission de l'infrastructure cible et aucun serveur de commande externe. L'intégralité de l'attaque s'exécute dans le cadre du flux de travail normal de GitHub.
L'agent de chaque fournisseur a répondu différemment à l'injection, mais tous les trois ont exécuté les instructions injectées :
Action d'examen de sécurité du code Claude d'Anthropic : Guan a soumis une demande d'extraction et injecté des instructions directement dans le titre du PR - par exemple, en disant à Claude d'exécuter lewhoamicommande à l’aide de son outil Bash et renvoie le résultat sous forme de « résultat de sécurité ». Claude a exécuté les commandes injectées, intégré la sortie du shell dans sa réponse JSON et publié le résultat sous forme de commentaire de demande d'extraction. La tâche de l'agent était la révision de la sécurité du code. Elle...
[Courte citation de 8% de l'article original]