🎯 Contexte

Source : Tenable Research Special Operations (RSO), publiée le 21 mai 2026. L’article présente une FAQ détaillée sur la campagne Mini Shai-Hulud, quatrième génération d’un ver auto-propagant opéré par le groupe TeamPCP, actif depuis septembre 2025 dans les écosystèmes npm et PyPI.

🐛 Évolution du ver Shai-Hulud

Quatre générations ont été identifiées :

  • Shai-Hulud (septembre 2025) : premier malware auto-réplicant observé dans npm, vol de tokens mainteneur
  • SHA1-Hulud (novembre 2025) : fonctionnalité wiper et collecte de credentials améliorée
  • SANDWORM_MODE (mars 2026) : ciblage adaptatif avec énumération des pipelines CI/CD
  • Mini Shai-Hulud (avril 2026) : variante la plus destructrice, active au moment de la publication

⚙️ Capacités techniques de Mini Shai-Hulud

  • Contournement des attestations SLSA Build Level 3 via Sigstore (première mondiale)
  • Extraction de tokens OIDC depuis la mémoire du processus GitHub Actions runner
  • Hooks de persistance ciblant les agents de codage IA et les IDEs développeurs
  • Propagation cross-écosystème (npm et PyPI)
  • Triple exfiltration redondante : serveur C2 dédié, réseau Session (décentralisé), dead drops via GitHub API

🔗 Trois chaînes d’attaque

  1. Vol de token + publication automatisée massive : hook preinstall téléchargeant le runtime Bun pour exécuter un payload obfusqué
  2. Hijack OIDC avec contournement de provenance (utilisé dans la vague TanStack) : extraction de token OIDC depuis la mémoire du runner, publication via le pipeline légitime avec attestation cryptographique valide
  3. Injection PyPI : dropper injecté dans le fichier d’initialisation du package, téléchargeant un payload depuis une infrastructure contrôlée par l’attaquant

🏛️ CVE associée

CVE-2026-45321 (CVSSv3 : 9.6, VPR : 9.2) : injection de code malveillant dans 42 packages @tanstack via trois failles chaînées dans la configuration GitHub Actions de TanStack. L’attaquant a créé un fork sous un compte renommé, ouvert une PR déclenchant un workflow pull_request_target, empoisonné le cache GitHub Actions, puis extrait des tokens OIDC pour publier 84 versions malveillantes en moins de six minutes avec des attestations SLSA valides.

🏢 Organisations compromises

  • OpenAI (15 mai 2026) : deux appareils employés compromis, exfiltration de certificats de signature de code (macOS, Windows, iOS, Android)
  • Mistral AI : système de gestion de codebase compromis, packages SDK contaminés, dépôts vendus sur forum cybercriminel (17 mai 2026)
  • Commission Européenne (mars 2026, vague Trivy) : plus de 90 Go de données exfiltrées
  • GitHub (19 mai 2026) : ~3 800 dépôts internes breachés via une extension VS Code trojanisée (Nx Console), elle-même compromise via la chaîne TanStack

📦 Ampleur de la campagne

  • Plus de 170 packages npm et PyPI compromis
  • Plus de 518 millions de téléchargements hebdomadaires cumulés
  • Au moins 400 dépôts GitHub créés pour stocker des credentials volés
  • Code source open-sourcé le 12 mai 2026 sur GitHub (licence MIT) avec concours à 1 000 $ sur BreachForums
  • 4 packages copycats détectés par OX Security : chalk-tempalte, @deadcode09284814/axios-util, axois-utils, color-style-utils
  • Ver concurrent PCPJack observé, évincant les infections TeamPCP tout en volant des credentials

🕵️ Attribution

TeamPCP : groupe cybercriminel à motivation financière, apparu fin 2025. Aliases : UNC6780 (Google TIG), DeadCatx3, PCPcat, ShellForce, CipherForce. Partenariat annoncé avec le groupe ransomware Vect.

📰 Nature de l’article

Article de type FAQ technique publiée par l’équipe RSO de Tenable, visant à documenter exhaustivement la campagne Mini Shai-Hulud pour les équipes CTI et sécurité, avec indicateurs de compromission, détail des vagues d’attaque et couverture produit Tenable One.

🧠 TTPs et IOCs détectés

Acteurs de menace

  • TeamPCP (cybercriminal) — orkl.eu · Malpedia
  • UNC6780 (cybercriminal) —
  • Vect (cybercriminal) —

TTP

  • T1195.001 — Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
  • T1554 — Compromise Client Software Binary (Persistence)
  • T1528 — Steal Application Access Token (Credential Access)
  • T1552.001 — Unsecured Credentials: Credentials In Files (Credential Access)
  • T1552.004 — Unsecured Credentials: Private Keys (Credential Access)
  • T1059.007 — Command and Scripting Interpreter: JavaScript (Execution)
  • T1053.006 — Scheduled Task/Job: Systemd Timers (Persistence)
  • T1041 — Exfiltration Over C2 Channel (Exfiltration)
  • T1567 — Exfiltration Over Web Service (Exfiltration)
  • T1027 — Obfuscated Files or Information (Defense Evasion)
  • T1588.006 — Obtain Capabilities: Vulnerabilities (Resource Development)
  • T1176 — Browser Extensions (Persistence)
  • T1490 — Inhibit System Recovery (Impact)

IOC

  • IPv4 : 83.142.209.194AbuseIPDB · VT · ThreatFox
  • Domaines : getsession.orgVT · URLhaus · ThreatFox
  • CVEs : CVE-2026-45321NVD · CIRCL
  • Fichiers : gh-token-monitor
  • Chemins : .vscode/tasks.json
  • Chemins : ~/.claude/settings.json
  • Chemins : .aws/credentials
  • Chemins : .npmrc
  • Chemins : .kube/config
  • Chemins : .docker/config.json

Malware / Outils

  • Mini Shai-Hulud (other)
  • Shai-Hulud (other)
  • SHA1-Hulud (other)
  • SANDWORM_MODE (other)
  • PCPJack (other)
  • chalk-tempalte (other)
  • axois-utils (other)
  • color-style-utils (other)

🟢 Indice de vérification factuelle : 67/100 (haute)

  • ⬜ tenable.com — source non référencée (0pts)
  • ✅ 20449 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 10 IOCs (IPs/domaines/CVEs) (10pts)
  • ✅ 2/2 IOCs confirmés (AbuseIPDB, ThreatFox, URLhaus, VirusTotal) (12pts)
  • ✅ 13 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ✅ acteur(s) identifié(s) : TeamPCP, UNC6780, Vect (5pts)
  • ⬜ 0/1 CVE(s) confirmée(s) (0pts)

IOCs confirmés externellement :

  • 83.142.209.194 (ip) → AbuseIPDB (29% confiance, 6 signalements) + VT (21/91 détections) + ThreatFox (Cobalt Strike)
  • getsession.org (domain) → ThreatFox (Unknown malware)

🔗 Source originale : https://www.tenable.com/blog/mini-shai-hulud-frequently-asked-questions