Retour aux bulletins
Critique2026-03-26CVSS 9.4CVE-2026-33634 (2026-03-21)supply-chainci-cdteampcpgithub-actionskubernetesdocker

TeamPCP — Anatomie d'une campagne supply chain qui a frappé l'écosystème cloud-native

Le groupe TeamPCP a mené la campagne supply chain la plus impactante de 2026, compromettant Trivy, Checkmarx, LiteLLM, 47+ packages npm et plus de 60 000 serveurs — en exploitant un seul token GitHub volé par un agent IA autonome.

Qui est TeamPCP ?

TeamPCP (alias DeadCatx3, PCPcat, ShellForce, CanisterWorm) est un groupe cybercriminel hybride actif depuis au moins juillet 2025. Le groupe revendique plus de 700 membres et un historique de compromissions touchant le Canada, la Serbie, la Corée du Sud, les Émirats arabes unis et les États-Unis. Des liens avec Lapsus$ ont été identifiés.

Leurs spécialités : exploitation d'API Docker et Kubernetes, attaques supply chain, ransomware, cryptomining et vers auto-propagatifs.

Chronologie complète de la campagne

Phase 0 — Accès initial via agent IA (27-28 février 2026)

Un agent IA autonome nommé hackerbot-claw a exploité une mauvaise configuration dans un workflow pull_request_target de GitHub Actions pour voler un Personal Access Token (PAT) privilégié d'Aqua Security. Aqua a réagi, mais la rotation des credentials n'a pas été atomique — l'attaquant a conservé un accès pendant la fenêtre de rotation.

Phase 1 — Trivy (19 mars)

En utilisant les credentials survivants, TeamPCP force-push 75 des 76 tags de version de aquasecurity/trivy-action vers des commits malveillants contenant un infostealer chiffré. Publication d'un binaire Trivy malveillant v0.69.4 via le compte de service aqua-bot.

Phase 2 — Docker Hub & défacement (22 mars)

  • Publication d'images Docker Hub malveillantes Trivy v0.69.5 et v0.69.6
  • Défacement des 44 dépôts de l'organisation GitHub d'Aqua Security en quelques minutes

Phase 3 — Checkmarx (23 mars)

35 tags hijackés dans checkmarx/kics-github-action et checkmarx/ast-github-action. Publication d'extensions VS Code malveillantes sur OpenVSX (cx-dev-assist 1.7.0, ast-results 2.53.0). Le payload intègre un nouveau module de persistance Kubernetes.

Phase 4 — LiteLLM & npm (24 mars)

Deux versions malveillantes du package Python litellm publiées sur PyPI via des credentials volés durant la compromission de Trivy. En parallèle, lancement de CanisterWorm — un ver qui a compromis 47+ packages npm en injectant du code malveillant dans les hooks postinstall.

Techniques et infrastructure

Payload — "TeamPCP Cloud Stealer"

Données ciblées : clés SSH, credentials cloud (AWS, GCP, Azure), tokens Kubernetes, credentials Docker, mots de passe de bases de données, clés TLS privées, portefeuilles crypto.

Les données sont collectées directement depuis la mémoire des runners CI/CD, chiffrées en AES-256 + RSA-4096 et exfiltrées.

Infrastructure C2 résistante au takedown

TeamPCP utilise des canisters sur l'Internet Computer Protocol (ICP) — une blockchain décentralisée — comme infrastructure C2. Cette approche rend l'infrastructure quasi impossible à faire tomber par les canaux traditionnels (pas de registrar, pas d'hébergeur à contacter).

  • Domaines typosquattés : scan.aquasecurtiy.org, checkmarx.zone
  • Fallback blockchain : canisters ICP servant kamikaze.sh
  • Exfiltration via dépôts GitHub créés automatiquement (tpcp-docs, docs-tpcp)

Innovation tactique

  • Agent IA pour l'accès initial (hackerbot-claw)
  • Cascade de credentials : un seul token volé pivote vers Trivy → Checkmarx → LiteLLM → npm
  • Mutabilité des tags Git exploitée systématiquement
  • Persistance Kubernetes dans les versions tardives du payload

Impact global

  • 60 000+ serveurs compromis à l'échelle mondiale
  • Des milliers de pipelines CI/CD touchés via GitHub Actions
  • 47+ packages npm infectés via CanisterWorm
  • Fenêtres d'exposition de 3 à 12 heures par vecteur

Indicateurs de compromission (IOCs)

Domaines C2 : scan.aquasecurtiy.org, checkmarx.zone

Adresses IP : 45.148.10.212, 83.142.209.11

ICP canister : tdtqy-oyaaa-aaaae-af2dq-cai

Dépôts d'exfiltration : tpcp-docs / docs-tpcp

Artefacts : tpcp.tar.gz, payload.enc

Malware ID : "TeamPCP Cloud stealer"

Remédiation

  1. Auditer tous les workflows GitHub Actions exécutés entre le 19 et le 24 mars 2026 — rechercher les connexions sortantes vers les IOCs ci-dessus.
  2. Rotation complète des secrets de tout pipeline ayant utilisé Trivy, Checkmarx KICS/AST, ou LiteLLM pendant la fenêtre.
  3. Épingler toutes les GitHub Actions par hash de commit — ne plus jamais utiliser de tags mutables.
  4. Auditer les packages npm de vos projets pour détecter des hooks postinstall inhabituels.
  5. Vérifier vos clusters Kubernetes pour des workloads inconnus (persistance TeamPCP).
  6. Rechercher les dépôts tpcp-docs ou docs-tpcp dans vos organisations GitHub.

Leçons

Cette campagne est un cas d'école : un seul token volé, exploité en cascade, a permis de compromettre l'ensemble de l'écosystème d'outils de sécurité cloud-native. La confiance implicite accordée aux scanners de sécurité dans les pipelines CI/CD est devenue le principal vecteur d'attaque. L'utilisation d'un agent IA pour l'accès initial marque une évolution significative dans les TTPs des groupes cybercriminels.