L’agent rouge de Wiz a exploité un workflow GitHub Actions vulnérable dans un référentiel Snowflake, compromettant finalement les informations d’identification Jira.
Un agent de sécurité IA autonome développé par la société de sécurité cloud Wiz a identifié et exploité une vulnérabilité critique dans le pipeline GitHub Actions de Snowflake, tandis que GitHub Copilot avait précédemment examiné le changement de code sans signaler la faille.
Le code vulnérable faisait partie d’une pull request (PR) dans laquelle GitHub Copilot était impliqué, bien que Wiz ait précisé qu’il n’était pas clair si l’assistant de codage lui-même avait introduit la vulnérabilité. « Copilot était un co-auteur qui a vérifié le PR fusionné et le changement de code, et l’a identifié comme étant clair sans remarquer les vulnérabilités critiques », ont déclaré les chercheurs de Wiz dans un article de blog.
La voie d’attaque a été identifiée et exploitée à l’aide de l’outil de recherche de sécurité autonome de Wiz, « Red Agent », qui a finalement réussi à accéder aux informations d’identification Jira internes de Snowflake.
Faille exploitée malgré les protections
L’agent rouge de Wiz a trouvé la faille dans le workflow « jira_issue.yml » dans le référentiel « snowflake-connector-net » de Snowflake.
Le workflow s’exécutait chaque fois que quelqu’un ouvrait un problème GitHub et utilisait le titre du problème dans le cadre d’une commande shell. Un changement introduit dans le PR#1218 a modifié la façon dont cette entrée était gérée, permettant à un attaquant d’injecter et d’exécuter ses propres commandes via le flux de travail, ont expliqué les chercheurs.
Le flux de travail contenait également une protection conçue pour empêcher toute exploitation par des utilisateurs non fiables. Mais cette vérification s’est avérée inefficace car elle a été conçue pour une pull request, mais l’exploit impliquait la gestion de « problèmes ». Par conséquent, la vérification n’a pas fonctionné comme prévu, permettant à tout utilisateur de GitHub de la contourner.
La vulnérabilité a été mise en ligne le 18 juin, lorsque le PR#1218 a été fusionné. Wiz a déclaré que GitHub Advanced Security avait analysé la révision finale et extrait le flux de travail vulnérable, mais n’avait pas réussi à signaler l’injection.
Red Agent a piraté les informations d’identification
L’agent rouge de Wiz a découvert la vulnérabilité en analysant de manière autonome l’organisation GitHub de Snowflake. Il a ensuite créé un titre de problème malveillant conçu pour sortir de l’instruction « echo » du shell et envoyer les informations d’identification Jira à un auditeur externe.
Les chercheurs ont noté que la première tentative d’exploitation de Red Agent avait échoué en raison d’une erreur de syntaxe, mais l’agent a ensuite analysé l’erreur, modifié sa charge utile et construit un exploit réussi lors de la deuxième tentative, tout seul.
L’exploitation réussie a amené le programme d’exécution GitHub Actions à envoyer un rappel hors bande contenant des informations d’identification Jira codées en base64. Wiz a utilisé les informations d’identification pour s’authentifier auprès de l’environnement Atlassian interne de Snowflake, obtenant ainsi un accès en lecture aux projets d’ingénierie, de conformité de sécurité et de bug bounty.
La vulnérabilité était active depuis cinq jours lorsque Redd Agent l’a trouvée, a déclaré Wiz. Snowflake a corrigé le flux de travail le 23 juin, rétablissant le modèle de gestion des entrées plus sûr, et a effectué une rotation des informations d’identification Jira concernées le jour suivant. L’enquête médico-légale de Snowflake n’a trouvé aucune preuve d’accès par quiconque autre que Wiz pendant la fenêtre d’exposition. Wiz a également confirmé que toutes les données consultées lors des tests de validation de principe avaient été supprimées en toute sécurité.



