« Si vous pensez que vous utilisiez une version compromise, considérez tous les secrets du pipeline comme compromis et effectuez une rotation immédiatement », déclare le responsable de Trivy.
Les attaquants ont compromis le scanner de vulnérabilités open source Trivy, largement utilisé, en injectant des logiciels malveillants de vol d’informations d’identification dans les versions officielles et les actions GitHub utilisées par des milliers de flux de travail CI/CD. La violation pourrait déclencher une cascade de compromissions supplémentaires dans la chaîne d’approvisionnement si les projets et les organisations concernés ne communiquent pas immédiatement leurs secrets.
L’attaque, révélée aujourd’hui par les responsables de Trivy, résulte d’un précédent compromis annoncé à la fin du mois dernier, qui exploitait également des actions GitHub non sécurisées et impactait plusieurs projets. Les sociétés de sécurité Socket et Wiz ont attribué la cause première à une rotation incomplète des informations d’identification après la première violation, permettant aux attaquants de retourner dans l’environnement de Trivy et d’introduire des commits malveillants.
« Si vous pensez que vous utilisiez une version compromise, considérez tous les secrets du pipeline comme compromis et effectuez une rotation immédiatement », a écrit Itay Shakury, responsable de Trivy, sur GitHub.
Plusieurs composants détournés
Trivy, développé par Aqua Security, est l’un des scanners de vulnérabilités open source les plus utilisés, avec plus de 32 000 étoiles GitHub et plus de 100 millions de téléchargements Docker Hub. Les développeurs l’utilisent pour détecter les vulnérabilités et les secrets exposés dans leurs pipelines CI/CD et images de conteneurs.
Les attaquants ont compromis trois composants du projet Trivy : trivy-action, l’action GitHub officielle permettant d’exécuter des analyses Trivy dans les flux de travail CI/CD ; setup-trivy, une action d’assistance pour installer le scanner ; et le binaire Trivy lui-même. Des artefacts de porte dérobée ont été publiés dans les versions de GitHub, Docker Hub, GitHub Container Registry et Amazon Elastic Container Registry.
Selon Socket, 75 des 76 balises de version de trivy-action ont été écrasées par du code malveillant, ainsi que sept balises de setup-trivy. La seule balise trivy-action non affectée était la version 0.35.0. Les balises compromises incluent des versions largement utilisées telles que 0.34.2, 0.33.0 et 0.18.0.
« Lorsque le binaire malveillant est exécuté, il démarre à la fois le service Trivy légitime et le code malveillant en parallèle », ont écrit les chercheurs de Wiz dans leur analyse de l’attaque.
Les attaquants recherchent des secrets de développement
Sur les exécuteurs GitHub Actions, le voleur d’informations d’identification lit la mémoire du processus pour extraire les secrets et recherche dans le système de fichiers les clés SSH, les informations d’identification du fournisseur de cloud, les jetons Kubernetes, les configurations de registre Docker et les portefeuilles de crypto-monnaie.
Les données volées sont cryptées et envoyées à un domaine typosquatté qui imite le site légitime d’Aqua Security. Si cela échoue, le malware se contente de créer un référentiel public appelé « tpcp-docs » sur le compte GitHub de la victime et d’y télécharger les données cryptées.
Selon Wiz, l’attaque installe également un dropper Python persistant sur les machines des développeurs qui se connecte à un serveur contrôlé par l’attaquant toutes les cinq minutes à la recherche de charges utiles supplémentaires à exécuter.
La technique de manipulation furtive des balises contourne la détection
Au lieu de créer de nouvelles versions, qui déclencheraient des notifications, les attaquants ont poussé de force les balises de version existantes pour pointer vers de nouvelles validations malveillantes. Les balises Git sont des pointeurs qui font référence à un commit spécifique par son empreinte digitale. En écrasant l’endroit où mènent ces pointeurs, tout flux de travail faisant référence à la balise commence à extraire le code de l’attaquant.
Pour éviter davantage d’être détectés, les attaquants ont cloné les métadonnées des commits d’origine, telles que les noms des auteurs, les adresses e-mail, les horodatages et les messages, faisant apparaître les commits malveillants identiques aux commits légitimes qu’ils ont remplacés. La contrefaçon a laissé des traces subtiles telles que des signatures cryptographiques manquantes et des relations d’horodatage incohérentes.
La même technique de manipulation de balises a été utilisée il y a un an lors de la compromission de l’action GitHub tj-actions/changed-files, qui a affecté 23 000 référentiels.
Une leçon pour les victimes
La compromission initiale de Trivy s’est produite fin février lorsque des attaquants ont exploité un workflow GitHub Actions mal configuré qui était présent dans le référentiel depuis octobre 2025. Le workflow, déclenché par des demandes d’extraction externes, s’exécutait avec accès aux secrets du référentiel, un modèle dangereux dans les actions GitHub qui a déjà été documenté.
Les attaquants ont volé un jeton d’accès personnel (PAT) avec des autorisations d’écriture et l’ont utilisé pour supprimer des versions, renommer le référentiel et publier une extension Visual Studio Code malveillante. Les responsables de Trivy ont alterné leurs informations d’identification, mais il semble que le processus en ait manqué certaines.
Cet échec, notamment de la part d’une entreprise spécialisée dans la sécurité CI/CD, devrait servir d’avertissement aux organisations touchées par cette nouvelle attaque, notamment parce que le malware est conçu pour voler le même type d’informations d’identification qui pourraient permettre de compromettre la chaîne d’approvisionnement dans leurs propres pipelines.
Un modèle récurrent
Le compromis Trivy est le dernier d’une série croissante d’attaques ciblant les actions GitHub et les développeurs en général. La compromission tj-actions/changed-files de l’année dernière a utilisé la même approche de manipulation de balises et a ensuite été attribuée à une compromission en amont de l’action reviewdog/action-setup. Parmi les autres incidents survenus en 2025, citons la campagne GhostAction, qui a volé plus de 3 000 secrets à 327 utilisateurs de GitHub, et une attaque contre le package nx npm qui a exploité un workflow pull_request_target vulnérable.
GitHub a modifié le comportement par défaut des workflows pull_request_target en décembre 2025 pour réduire le risque d’exploitation, mais le workflow vulnérable dans le référentiel Trivy était antérieur à ce changement.
Les organisations utilisant Trivy doivent épingler les actions GitHub sur les hachages SHA de validation complets plutôt que sur les balises de version pour empêcher les attaques de manipulation de balises. Les versions sûres sont Trivy v0.69.3, trivy-action tag 0.35.0 et setup-trivy 0.2.6. Les équipes de sécurité doivent également rechercher dans leurs comptes GitHub des référentiels nommés tpcp-docs, ce qui indiquerait une exfiltration de secours réussie, et bloquer le domaine de commande et de contrôle et son adresse IP au périmètre du réseau.



