Présentation de la faille

Les chercheurs de Noma Labs ont découvert une faille de sécurité dans les flux de travail Agentic de GitHub, permettant à un attaquant non authentifié de récupérer des données à partir de dépôts privés en créant une issue dans un dépôt public appartenant à la même organisation.

Fonctionnement de la faille

La faille, nommée GitLost, repose sur une injection de commande dans les issues de GitHub. L'agent AI de GitHub traite les instructions cachées dans les issues comme des instructions de confiance, permettant ainsi à l'attaquant de récupérer des données à partir de dépôts privés.

Les chercheurs ont constaté que la faille était due à une mauvaise configuration des flux de travail Agentic, qui permettait à l'agent AI de lire les issues et de poster des commentaires en réponse, avec des autorisations de lecture sur d'autres dépôts de l'organisation.

Les étapes de l'attaque sont les suivantes :
   1. Créer une issue dans un dépôt public appartenant à l'organisation ciblée.
   2. L'agent AI de GitHub traite l'issue et récupère les données à partir des dépôts privés.
   3. L'agent AI poste les données récupérées en tant que commentaire public sur l'issue.

Implications et limites

La faille GitLost met en évidence les défis de sécurité liés aux systèmes AI agentic. Les agents AI peuvent traiter les contenus comme des instructions, ce qui peut être exploité par les attaquants.

Les recommandations de Noma Labs pour les développeurs et les responsables de la sécurité AI sont les suivantes : - Ne jamais traiter le contenu contrôlé par l'utilisateur comme une instruction de confiance pour un agent AI. - Restreindre les autorisations aux minimum requis. - Restreindre ce que l'agent AI peut poster publiquement, en particulier en réponse au contenu des issues. - Nettoyer ou isoler les entrées utilisateur du contexte d'instruction avant de les passer à l'agent AI.