Entrons dans l'attaque de la chaîne d'approvisionnement de tj-actions/changed-files. Lisez la suite pour savoir ce qu'il faut faire, ce qui s'est passé et plus d'informations.
TL;DR
- Le tj-actions/changed-files
GitHub Action, qui est actuellement utilisé dans plus de 23 000 dépôts, a été compromis, laissant échapper des secrets par le biais de journaux de flux de travail et ayant un impact sur des milliers de pipelines de CI.
- Toutes les versions étiquetées ont été modifiées, ce qui rend l'épinglage basé sur les étiquettes peu sûr. Les dépôts publics sont les plus exposés, mais les dépôts privés devraient également vérifier leur exposition.
- Les mesures immédiates consistent à identifier les flux de travail concernés, à supprimer toutes les références à l'action compromise, à assurer la rotation des secrets et à vérifier les journaux pour y déceler toute activité suspecte.
Réponse d'Aikido : Nous avons publié une nouvelle règle SAST qui signale toute utilisation avec une sévérité critique (Score 100). Aikido peut automatiquement épingler vos actions Github pour éviter ce type d'exploit à l'avenir.
Tout d'abord, que faire ?
Vérifiez si vous êtes concerné par la j-actions/changed-files
attaque de la chaîne d'approvisionnement :
A) Rechercher tj-actions
dans votre base de données
B) Utilisez cette requête Github pour trouver des références à l'action GitHub concernée dans les dépôts de votre organisation (remplacez [votre-org] par le nom de votre organisation).
Cessez d'utiliser tj-actions/changed-files
dès que possible et supprimez toutes les références à l'action compromise.
Faites tourner les secrets des pipelines concernés et vérifiez les journaux de vos services (tiers) pour détecter toute utilisation suspecte des jetons exposés ; concentrez-vous d'abord sur les dépôts dont les journaux d'exécution de CI sont accessibles au public.
Passons à l'attaque : Que s'est-il passé ?
Un incident de sécurité impliquant le tj-actions/changed-files
L'action GitHub a été identifiée à la mi-mars 2025. Les attaquants ont introduit un code malveillant qui expose les secrets CI/CD via les journaux de flux de travail. D'abord rapporté par Step Security, l'incident a été assigné à CVE-2025-30066.
Bien qu'il y ait un manque de clarté sur ce qui s'est passé et comment le code a été poussé, la plupart des rapports indiquent que l'attaquant a compromis un jeton d'accès personnel GitHub (PAT) lié au compte tj-actions-bot, ce qui a permis à l'attaquant d'apporter des modifications non autorisées, d'injecter du code malveillant et de manipuler les balises de version.
Chronologie des événements :
Avant le 14 mars 2025 : Le code malveillant a commencé à avoir un impact sur les dépôts affectés, provoquant des fuites de secrets dans les journaux publics.
14 mars 2025 : Des chercheurs en sécurité identifient la compromission et sensibilisent l'opinion publique.
15 mars 2025 : Le script malveillant hébergé sur GitHub Gist a été supprimé. Le dépôt compromis a été brièvement mis hors ligne pour annuler les modifications malveillantes, puis restauré sans les modifications nuisibles.
15 mars 2025 : Le repo est de nouveau en ligne avec une déclaration sur l'attaque ; le mainteneur a également commenté l'attaque.
Bien que la menace immédiate ait été résolue, les versions en cache de l'action compromise peuvent encore présenter un risque. Il est nécessaire de prendre des mesures d'atténuation proactives pour sécuriser les informations d'identification sensibles.
Quel est l'impact de l'attaque tj-actions/changed-files ?
Dépôts utilisant des tj-actions/changed-files
Les entreprises, en particulier les entreprises publiques, risquent de divulguer les secrets utilisés dans leurs pipelines. Ces secrets ont été révélés dans les journaux de flux de travail par le code malveillant de l'acteur de la menace. Bien qu'aucune exfiltration de données externes n'ait été confirmée, des acteurs malveillants ont pu accéder aux journaux des dépôts publics. Les dépôts privés sont moins concernés, mais ils doivent néanmoins évaluer leur exposition et remplacer les secrets s'ils sont touchés.
Dépôts publics : Risque élevé en raison de l'exposition publique de journaux de flux de travail contenant des secrets.
Dépôts privés : Risque plus faible, mais le fait que des secrets actifs soient exposés dans vos journaux de flux de travail constitue toujours un risque important.
Utilisateurs d'actions mises en cache : Les flux de travail qui ont mis en cache l'action compromise peuvent continuer à présenter un risque jusqu'à ce que les caches soient purgés.
Comment l'aïkido peut-il aider ?
Nous avons publié un nouvelle règle SAST qui signale tout tj-actions/changed-files
utilisation avec gravité critique (Score 100). Si vous utilisez déjà Aikido, vous êtes couvert. Si vous n'avez pas de compte Aikido, vous pouvez vous connecter et scanner votre installation en quelques secondes.
Au-delà de cette attaque, Aikido épingle automatiquement vos actions Github afin d'éviter ce genre d'exploit à l'avenir.
Et notre flux propriétaire de menaces de logiciels malveillants - Aikido Intel - détecte les logiciels malveillants dans les 3 minutes suivant leur publication sur npm, pypi, et sera bientôt étendu aux actions Github.
Nous facilitons l'accès à votre chaîne d'approvisionnement en logiciels et vous avertissons au plus tôt des nouveaux risques et des nouvelles attaques.
En savoir plus sur l'attaque :
- Une analyse de "Comprendre et recréer l'attaque de la chaîne d'approvisionnement tj-actions/changed-files" par James Berthoty, analyste chez Latio. James vous montre également comment recréer l'attaque dans votre propre environnement pour tester votre capteur (attention).
- Step Security, qui a été le premier à signaler l'attaque, a publié une analyse de l'enquête, "Harden-Runner detection : tj-actions/changed-files action is compromised" (Détection Harden-Runner : l'action tj-actions/changed-files est compromise)
- Voir CVE-2023-51664