La populaire GitHub Action tj-actions/changed-files a été compromise par une charge utile malveillante qui tente d’exporter les secrets du dépôt, avec le potentiel d’impacter des milliers de pipelines CI sur GitHub. Depuis le 14 mars 2025, toutes les versions de cette action sont considérées comme compromises. Ce n’est pas le premier problème de sécurité associé à cette action—une vulnérabilité précédente (CVE-2023-51664) avait déjà été signalée.
L’action est largement utilisée dans les flux de travail CI/CD pour détecter quels fichiers ont été modifiés entre les commits, ce qui en fait une cible de grande valeur pour les attaquants souhaitant extraire des informations sensibles des dépôts.
| Date | 16/03/2025 01:30:55 |
| Informations |
|
Résumé technique
La compromission implique une charge utile malveillante injectée dans le code de l’action au commit 0e58ed8. Lorsque l’action compromise est exécutée dans un workflow, elle tente d’exfiltrer les secrets en les écrivant sur stdout, ce qui est particulièrement dangereux dans les dépôts avec des journaux de CI runner publics.
L’attaque exploite la grande confiance accordée à cette action et les autorisations étendues généralement accordées aux workflows GitHub Actions. Étant donné que dans la plupart des implémentations, l’action est référencée via des tags plutôt que via le SHA du commit, les utilisateurs sont automatiquement exposés à la version compromise dès que le tag est mis à jour, sans avoir à modifier les fichiers du workflow.
La charge utile cible spécifiquement les variables d’environnement CI et les secrets, qui contiennent souvent des jetons d’authentification sensibles, des clés API et d’autres informations d’identification qui pourraient accorder à un attaquant l’accès à divers systèmes et services.
Recommandations
Actions immédiates :
Identifier les dépôts compromis via :
- Recherche dans votre code de la présence de références à
tj-actions - Utilisation de la requête de recherche GitHub :
https://github.com/search?q=org%3A<YOURORG>+uses%3A+tj-actions%2F&type=code
Supprimer immédiatement l’action compromise de :
- Toutes les branches (pas seulement la branche principale)
- Tous les fichiers de workflow (
.github/workflows/*.yml)
Mettre en œuvre des mesures préventives :
- Configurer les paramètres de l’organisation GitHub pour n’autoriser que les actions sécurisées (liste blanche)
- Supprimer
tj-actions/changed-filesde la liste des actions autorisées - Épingler les GitHub Actions restantes à des SHA de commit spécifiques au lieu de tags de version
Utiliser des alternatives :
- Passer à une alternative plus sécurisée de GitHub Action
- Envisager la mise en œuvre d’une logique inline pour la détection des modifications de fichiers
- Pour les utilisateurs de la plateforme Semgrep AppSec, activer immédiatement le mode blocage pour la règle de détection
N’oubliez pas que supprimer l’action uniquement de la branche principale n’est pas suffisant—elle doit être complètement éliminée de tous les workflows pour éviter son exécution dans n’importe quel contexte.
[Callforaction-THREAT-Footer]
Leave a Reply