Retour aux bulletins
Critique2026-03-21CVSS 9.4CVE-2026-33634 (2026-03-21)trivysupply-chainci-cdgithub-actions

Supply Chain Attack sur Trivy — Le scanner devenu infostealer

Une attaque supply chain a compromis le pipeline de release Trivy et l'écosystème GitHub Actions, transformant le scanner de sécurité en infostealer ciblant les environnements CI/CD.

Contexte

Trivy, le scanner de vulnérabilités open-source d'Aqua Security, a été la cible d'une attaque supply chain référencée CVE-2026-33634 (GHSA-69fq-xp46-6x23). Un threat actor (TeamPCP / DeadCatx3) a injecté du code malveillant dans les binaires Trivy, les images conteneur et les GitHub Actions.

Timeline de l'attaque

Phase 1 — Initial Access (fin février 2026)

L'attaquant a exploité une mauvaise configuration dans l'environnement GitHub Actions de Trivy pour extraire un access token privilégié, obtenant un point d'entrée dans l'automatisation des releases.

Phase 2 — Tag Hijacking (19 mars, ~17h43 UTC)

  • Force-push de 76 des 77 tags de version dans aquasecurity/trivy-action et des 7 tags dans aquasecurity/setup-trivy, redirigeant les références de confiance vers des commits malveillants.
  • Publication d'un binaire Trivy malveillant en v0.69.4 via le compte de service compromis aqua-bot.
  • Le commit malveillant a remplacé actions/checkout par un commit imposteur contenant une action composite qui téléchargeait du code Go malveillant depuis un domaine typosquatté.
  • La validation de release a été contournée via --skip=validate dans goreleaser.

Phase 3 — Compromission Docker Hub (22 mars)

Publication d'images Docker Hub malveillantes v0.69.5 et v0.69.6 à l'aide de credentials Docker Hub compromis.

Root Cause

La rotation des credentials suite au breach initial de février n'était pas atomique — tous les credentials n'ont pas été révoqués simultanément — ce qui a permis à l'attaquant d'exfiltrer les nouveaux secrets pendant la fenêtre de rotation.

Impact

  • Le payload s'exécutait dans les runners GitHub Actions avant la logique légitime de scan Trivy — les workflows compromis semblaient fonctionner normalement.
  • Données exfiltrées : clés SSH, credentials AWS/GCP/Azure, credentials de bases de données, configurations Git et Docker, tokens Kubernetes, portefeuilles crypto.
  • Fenêtres d'exposition : ~3 heures (binaire Trivy), ~12 heures (trivy-action).

Indicateurs de compromission (IOCs)

Infrastructure C2 :

  • Domaine : scan.aquasecurtiy.org (typosquatté)
  • IP : 45.148.10.212
  • Secours : canister ICP tdtqy-oyaaa-aaaae-af2dq-cai (sert kamikaze.sh)

Artefacts d'exfiltration : payload.enc, tpcp.tar.gz

Indicateur GitHub : un dépôt public nommé tpcp-docs créé dans le compte de la victime, avec les données chiffrées uploadées en release assets

Versions compromises : Trivy v0.69.4, trivy-action v0.69.4, setup-trivy (tous les tags), images Docker Hub v0.69.5 et v0.69.6

Identification du malware : "TeamPCP Cloud stealer" — données chiffrées en AES-256 + RSA-4096

Détection : vérifier si un dépôt tpcp-docs a été créé sous les comptes GitHub de votre organisation. Examiner les logs GitHub Actions pour des connexions sortantes vers scan.aquasecurtiy.org ou 45.148.10.212.

Remédiation

  1. Mettre à jour immédiatement : Trivy v0.69.2 ou v0.69.3, trivy-action v0.35.0, setup-trivy v0.2.6.
  2. Effectuer la rotation de tous les secrets accessibles aux workflows affectés — les considérer comme compromis.
  3. Auditer les systèmes pour détecter les dépôts tpcp-docs (mécanisme d'exfiltration de secours de l'attaquant).
  4. Épingler les GitHub Actions sur des hashes de commit immuables plutôt que sur des tags de version mutables.
  5. Vérifier les installations avec cosign/sigstore en s'assurant que les timestamps de signature sont antérieurs au 19 mars.