En bref
Que s'est-il passé ?
Trivy (Aqua) est un scanner de sécurité parmi les plus intégrés aux pipelines CI/CD : il est censé protéger la chaîne logicielle. En mars 2026, il est compromis pour la deuxième fois : l'outil de défense devient lui-même un vecteur d'attaque.
L'attaque combine trois surfaces : une release piégée (v0.69.4), les actions GitHub officielles setup-trivy et trivy-action, et les images Docker aquasec/trivy 0.69.5 et 0.69.6. Un domaine C2 est codé en dur dans le binaire. Exécuter l'action ou l'image en CI ouvre un canal de commande et contrôle et permet l'exfiltration depuis l'environnement de build.
La gravité tient à la confiance accordée à un outil de sécurité et à son usage massif en CI/CD : un seul artefact piégé touche potentiellement tous les pipelines qui scannent avec Trivy. Les versions et images compromises ont été retirées, mais tout build les ayant tirées par tag mutable a pu être exposé.
Épingler actions et images par empreinte (SHA de commit, digest d'image) plutôt que par tag ; filtrer l'egress des runners pour bloquer un C2 ; vérifier la provenance des releases ; surveiller le réseau des étapes de build ; jetons CI scopés et courts.
Chronologie de l'attaque
Un bot autonome exploite un workflow pull_request_target de aquasecurity/trivy pour dérober un jeton d'accès personnel (PAT).
Via des commits imposteurs : trivy-action (~12 h), setup-trivy (~4 h) et la release v0.69.4 (~3 h) sont compromises ; un voleur de secrets lit la mémoire du runner et exfiltre vers un domaine C2.
Les images aquasec/trivy 0.69.5 et 0.69.6 contiennent le domaine C2 codé en dur dans le binaire (analyse de chaînes).
Comment l'attaquant a procédé
Cet incident met en jeu les vecteurs d'attaque suivants du catalogue SOCLE ; chacun renvoie à sa fiche, où l'on trouve les exigences qui le neutralisent :
La leçon à en tirer
Épingler les actions par SHA (jamais par tag mutable) ; jetons CI scopés et courts ; allowlist d'actions.
Les exigences SOCLE qui auraient limité cet incident
Cet incident se rattache à 3 exigences du référentiel, par domaine. Les satisfaire n'aurait pas forcément tout empêché, mais aurait réduit la probabilité de l'attaque, limité son impact ou accéléré sa détection :