🔍 Contexte

Article publié le 22 mars 2026 sur Ars Technica, rédigé par Dan Goodin. L’incident a débuté dans les premières heures du jeudi 20 mars 2026 et a été confirmé par Itay Shakury, mainteneur de Trivy, scanner de vulnérabilités open source d’Aqua Security comptant 33 200 étoiles sur GitHub.

💥 Nature de l’attaque

Les attaquants, se désignant sous le nom Team PCP, ont exploité des credentials volés (issus d’une compromission antérieure du mois précédent sur l’extension VS Code de Trivy) pour effectuer des force-push Git sur les tags existants du dépôt aquasecurity/trivy-action. Cette technique contourne les mécanismes de protection habituels et n’apparaît pas dans l’historique des commits, évitant ainsi les notifications et les défenses classiques.

🛠️ Mécanisme technique

Le processus d’attaque documenté par Socket :

  • Départ depuis le HEAD master (57a97c7e)
  • Remplacement de entrypoint.sh par un payload infostealer
  • Clonage des métadonnées du commit original (auteur, timestamps, message)
  • Force-push du tag vers le nouveau commit malveillant
  • 75 tags sur 76 de trivy-action et 7 tags de setup-trivy compromis
  • Tags spoofés incluant @0.34.2, @0.33, @0.18.0 ; seul @0.35.0 est inaffecté

Des commits imposteurs ont également été poussés vers actions/checkout (en usurpant l’identité de l’utilisateur rauchg) et vers aquasecurity/trivy (en usurpant DmitriyLewen).

🦠 Comportement du malware

Le binaire malveillant, analysé par Wiz et Socket :

  • Lance en parallèle le service Trivy légitime et le code malveillant
  • Collecte les variables d’environnement et les credentials du filesystem
  • Énumère les interfaces réseau
  • Cible : GitHub tokens, cloud credentials, SSH keys, Kubernetes tokens
  • Compresse et chiffre les données exfiltrées
  • Exfiltration primaire via POST vers https://scan.aquasecurtiy[.]org (domaine typosquatté, résolvant vers 45.148.10.212)
  • Mécanisme de backup : utilisation d’un GITHUB_TOKEN volé pour créer un dépôt tpcp-docs et y poster les données
  • Sur machine développeur : écriture d’un dropper Python encodé en base64 pour la persistance

🎯 Étendue de la compromission

En plus des tags Trivy, les attaquants ont :

  • Compromis le compte de service Aqua
  • Poussé des workflows malveillants vers traceeshark et trivy-action
  • Volé des clés GPG, credentials Docker Hub, Twitter et Slack
  • Exfiltré ces secrets via un tunnel Cloudflare C2 (plug-tab-protective-relay.trycloudflare.com)
  • Publié des binaires backdoorés sur GitHub Releases, Docker Hub, GHCR et ECR

La compromission initiale remonte à un incident du mois précédent sur l’extension VS Code Trivy, lors duquel une rotation incomplète des credentials a laissé des artefacts exploitables.

📰 Type et portée

Article de presse spécialisée rapportant un incident de supply chain en cours, visant à informer les utilisateurs de Trivy sur la nature de la compromission, les IOCs et les actions à entreprendre.

🧠 TTPs et IOCs détectés

Acteurs de menace

  • Team PCP (unknown)

TTP

  • T1195.001 — Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
  • T1554 — Compromise Client Software Binary (Persistence)
  • T1552.001 — Unsecured Credentials: Credentials In Files (Credential Access)
  • T1552.004 — Unsecured Credentials: Private Keys (Credential Access)
  • T1041 — Exfiltration Over C2 Channel (Exfiltration)
  • T1567 — Exfiltration Over Web Service (Exfiltration)
  • T1027 — Obfuscated Files or Information (Defense Evasion)
  • T1036.003 — Masquerading: Rename System Utilities (Defense Evasion)
  • T1036.005 — Masquerading: Match Legitimate Name or Location (Defense Evasion)
  • T1059.006 — Command and Scripting Interpreter: Python (Execution)
  • T1098 — Account Manipulation (Persistence)
  • T1525 — Implant Internal Image (Persistence)

IOC

  • IPv4 : 45.148.10.212
  • Domaines : scan.aquasecurtiy.org
  • Domaines : plug-tab-protective-relay.trycloudflare.com
  • URLs : https://scan.aquasecurtiy.org
  • SHA1 : 57a97c7e
  • Fichiers : entrypoint.sh

Malware / Outils

  • Trivy infostealer payload (stealer)
  • Python dropper (loader)

🔗 Source originale : https://arstechnica.com/security/2026/03/widely-used-trivy-scanner-compromised-in-ongoing-supply-chain-attack/