Attaque supply chain Trivy : TeamPCP cible Aqua Security via Docker et GitHub

🎯 Contexte Source : BleepingComputer — Article publié le 26 mars 2026. Cet article rapporte la continuation d’une attaque supply chain ciblant Aqua Security, entreprise spécialisée dans la sécurité cloud-native et éditrice de l’outil open source Trivy. 🔍 Déroulement de l’attaque Le groupe TeamPCP a poursuivi ses opérations malveillantes contre Aqua Security en : Poussant des images Docker malveillantes dans les dépôts de la société Compromettant l’organisation GitHub d’Aqua Security Altérant des dizaines de dépôts au sein de cette organisation 🏴 Acteurs et cibles L’acteur de menace identifié est TeamPCP, déjà responsable de l’attaque initiale sur Trivy. La cible principale est Aqua Security et son écosystème de dépôts publics, ce qui expose potentiellement les utilisateurs en aval de la chaîne d’approvisionnement logicielle. ...

26 mars 2026 · 2 min

Attaque supply chain TeamPCP : Trivy compromis, malware injecté dans les releases et GitHub Actions

🎯 Contexte Source : Wiz Research, publié le 20 mars 2026. Le 19 mars 2026, des acteurs malveillants se désignant sous le nom TeamPCP ont mené une attaque de supply chain ciblant Aqua Security’s Trivy, un scanner de vulnérabilités open source largement utilisé dans les environnements DevSecOps et CI/CD. 🔍 Déroulement de l’attaque L’attaque s’est déroulée en plusieurs étapes : Commits impersonateurs : TeamPCP a poussé des commits malveillants en usurpant l’identité des utilisateurs rauchg (sur actions/checkout) et DmitriyLewen (sur aquasecurity/trivy). Tag v0.69.4 malveillant : À 17:43:37 UTC, le tag v0.69.4 a été poussé, déclenchant la publication de binaires backdoorés sur GitHub Releases, Docker Hub, GHCR et ECR. Domaine typosquatté : Le code malveillant contactait scan.aquasecurtiy[.]org (résolvant vers 45.148.10.212) pour l’exfiltration. Compromission du compte aqua-bot : L’attaquant a abusé de ce compte pour pousser des workflows malveillants vers tfsec, traceeshark et trivy-action, volant des clés GPG, credentials Docker Hub, Twitter et Slack. Force-push de tags : 75 sur 76 tags de trivy-action et 7 tags de setup-trivy ont été écrasés par des versions malveillantes. Expansion vers npm : Le 22 mars, TeamPCP a étendu ses opérations à l’écosystème npm via un worm nommé CanisterWorm exploitant des tokens de publication volés. Images Docker malveillantes : Les versions 0.69.5 et 0.69.6 de Trivy ont été publiées sur Docker Hub le 22 mars vers 16:00 UTC. 🦠 Comportement du malware Dans les GitHub Actions (trivy-action / setup-trivy) Payload en 3 étapes : ...

25 mars 2026 · 5 min

CanisterWorm : TeamPCP compromet des packages NPM via un ver auto-propageable avec C2 ICP

🎯 Contexte Publié le 20 mars 2026 par Aikido Security (Charlie Eriksen), cet article documente la détection le 20 mars 2026 à 20h45 UTC d’une campagne de compromission massive de packages NPM, baptisée CanisterWorm, attribuée au groupe TeamPCP. Cette attaque fait suite à une compromission de l’outil Trivy moins de 24 heures auparavant, documentée par Wiz. 📦 Packages compromis 28 packages dans le scope @EmilGroup 16 packages dans le scope @opengov @teale.io/eslint-config @airtm/uuid-base32 @pypestream/floating-ui-dom 🏗️ Architecture en trois étapes Stage 1 – Loader Node.js (postinstall) : Un hook postinstall dans index.js décode un payload base64 (script Python), crée un service systemd utilisateur pgmon.service avec Restart=always, et le démarre immédiatement. Aucun accès root requis. Stage 2 – Backdoor Python persistante : Le script service.py attend 5 minutes (évasion sandbox), puis interroge toutes les ~50 minutes un canister ICP (tdtqy-oyaaa-aaaae-af2dq-cai.raw.icp0.io) pour obtenir une URL de payload. Il télécharge le binaire vers /tmp/pglog, l’exécute en processus détaché, et sauvegarde l’URL dans /tmp/.pg_state. Un kill switch est intégré : si l’URL contient youtube.com, le payload est ignoré. Stage 3 – Ver de propagation (deploy.js) : Outil initialement manuel utilisant des tokens NPM volés pour énumérer tous les packages publiables d’un compte, incrémenter la version patch, préserver le README original, et republier avec --tag latest. 🐛 Évolution vers l’auto-propagation Environ une heure après la vague initiale, une mise à jour de @teale.io/eslint-config (versions 1.8.11 et 1.8.12) a introduit la fonction findNpmTokens() qui : ...

25 mars 2026 · 3 min
Dernière mise à jour le: 26 Mar 2026 📝