Un outil clé des workflows GitHub a été modifié, exposant des milliers de projets à des risques de sécurité majeurs. Des identifiants sensibles ont probablement fuité, et l’ampleur de l’attaque inquiète la communauté.

Une action GitHub très utilisée dans les pipelines de développement a discrètement été modifiée pour exposer des informations hautement sensibles. Clés AWS, tokens GitHub et npm… Autant de sésames qu’un attaquant bien renseigné pourrait exploiter à grande échelle, alors que des milliers de projets ont potentiellement été affectés. Référencée CVE-2025-30066 (CVSS 8.6) par le NIST, l'attaque aurait eu lieu avant le 14 mars.
23 000 dépôts menacés par une action compromise
L’attaque a ciblé tj-actions/changed-files, une action GitHub intégrée dans plus de 23 000 dépôts, chargée de suivre les modifications apportées aux fichiers entre deux commits.
À l’origine du problème, un GitHub Personal Access Token (PAT) compromis, appartenant au bot @tj-actions-bot et stocké comme secret GitHub Action, qui a permis aux attaquants de modifier le code source et d’y injecter un script Python malveillant. Ce PAT disposant de privilèges élevés, il a par ailleurs été utilisé pour modifier rétroactivement plusieurs tags de versions existantes de l’action, les faisant pointer vers le code altéré. Par conséquent, toutes les anciennes versions référencées par des tags ont, elles aussi, été compromises.
Une fois activé dans un workflow CI/CD (intégration et livraison continues), le script se chargeait d’imprimer les secrets dans les logs GitHub Actions. Clés AWS, tokens GitHub, identifiants npm, clés RSA privées, tout y est passé. Une fuite d’autant plus critique que les logs de workflows publics ou mal configurés auraient pu exposer ces informations sensibles en clair, ouvrant potentiellement la porte à d’autres attaques bien plus sérieuses.
À titre d’exemple, un attaquant disposant d’un token GitHub valide aurait pu – ou pourrait encore – modifier un dépôt pour y injecter du code malveillant. Avec une clé AWS, il aurait également pu accéder aux serveurs cloud associés, exfiltrer des données ou déployer des charges malveillantes.
Bref, si aucune exploitation massive des secrets volés n’a été détectée jusqu’ici, les risques sous-jacents persistent.

Des mesures de sécurité à prendre sans attendre
Fort heureusement, le token compromis a depuis été révoqué par GitHub, empêchant toute nouvelle modification malveillante. Les mainteneurs de tj-actions/changed-files ont renforcé leurs contrôles d’accès et mis à jour les permissions des comptes associés. Le gist malveillant utilisé dans l’attaque a été supprimé et une version propre de l’action (46.0.1) a été publiée.
Évidemment, toute organisation utilisant tj-actions/changed-files doit immédiatement mettre à jour l’action vers la version 46.0.1 pour éviter tout risque d’exécution du code compromis. Une vérification des workflows exécutés entre le 14 et le 15 mars est également nécessaire pour identifier d’éventuelles anomalies dans la section « changed-files ». Si des identifiants, clés, tokens ont fuité, il est impératif de les révoquer et de les renouveler sans attendre pour éviter tout risque d’exploitation.
Source : The Hacker News
28 janvier 2025 à 09h19