🗓️ Contexte

Article publié le 1er juin 2026 par Ilyas Makari sur le blog d’Aikido Security. Il documente la compromission de 96 versions de 32 packages npm appartenant au scope officiel @redhat-cloud-services, détectée le jour même.

🎯 Nature de l’attaque

Le vecteur d’intrusion est la compromission d’un compte GitHub d’un employé Red Hat, utilisé pour pousser des commits orphelins malveillants directement dans plusieurs dépôts, contournant toute revue de code. Ces commits contenaient un fichier de workflow (ci.yaml) et un script (_index.js).

Le workflow exploite la permission id-token: write de GitHub Actions pour obtenir un token OIDC éphémère, puis publie des versions backdoorées via le mécanisme de trusted publishing npm — un contournement du système conçu pour éliminer les tokens longue durée.

🐛 Le malware : Miasma

Miasma est une nouvelle variante du ver Mini Shai-Hulud, open-sourcé par le groupe TeamPCP le 12 mai 2026. Il se distingue par des références à la mythologie grecque au lieu de l’univers Dune. Le payload :

  • Est embarqué dans un script preinstall exécuté automatiquement à chaque npm install
  • Pèse 4,2 Mo, obfusqué sur plusieurs couches
  • Se propage en republiant des versions backdoorées des packages auxquels le compte victime a accès

🔑 Données volées

Le malware effectue un sweep large de credentials :

  • GitHub Actions : GITHUB_TOKEN, ACTIONS_RUNTIME_TOKEN
  • AWS : access keys, session tokens
  • GCP : application default credentials, service account key files
  • Azure : service principal credentials, managed identity tokens
  • HashiCorp Vault tokens
  • Kubernetes : service account tokens, kubeconfig
  • npm et PyPI publish tokens
  • SSH private keys
  • Docker registry credentials
  • GPG keys
  • Fichiers .env sur le filesystem

📅 Chronologie de la campagne Mini Shai-Hulud

  • 22 avril 2026 : @bitwarden/cli compromis via workflow GitHub Actions empoisonné
  • 29 avril 2026 : 4 packages SAP npm compromis via token npm leaked (CircleCI)
  • 30 avril 2026 : PyTorch Lightning compromis sur PyPI (versions 2.6.2 et 2.6.3)
  • 12 mai 2026 : Plus de 160 packages compromis, dont Mistral et TanStack
  • 12 mai 2026 : TeamPCP publie le code source complet sur GitHub et BreachForums
  • 19 mai 2026 : DurableTask npm (Microsoft) compromis via compte GitHub préalablement compromis
  • 1er juin 2026 : 32+ packages @redhat-cloud-services compromis avec Miasma

📦 Packages affectés (sélection)

32 packages concernés, dont : @redhat-cloud-services/chrome, @redhat-cloud-services/frontend-components, @redhat-cloud-services/rbac-client, @redhat-cloud-services/types, @redhat-cloud-services/vulnerabilities-client, etc. — 116 991 téléchargements hebdomadaires cumulés.

📰 Type d’article

Rapport d’incident technique publié par Aikido Security, visant à alerter les utilisateurs des packages compromis et à documenter le vecteur d’attaque, les IoCs et la chronologie de la campagne.

🧠 TTPs et IOCs détectés

Acteurs de menace

TTP

  • T1195.001 — Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
  • T1586.002 — Compromise Accounts: Email Accounts (Resource Development)
  • T1059.007 — Command and Scripting Interpreter: JavaScript (Execution)
  • T1552.001 — Unsecured Credentials: Credentials In Files (Credential Access)
  • T1552.004 — Unsecured Credentials: Private Keys (Credential Access)
  • T1553 — Subvert Trust Controls (Defense Evasion)
  • T1027 — Obfuscated Files or Information (Defense Evasion)
  • T1543 — Create or Modify System Process (Persistence)
  • T1528 — Steal Application Access Token (Credential Access)

IOC

  • Fichiers : ci.yaml
  • Fichiers : _index.js
  • Fichiers : index.js

Malware / Outils

  • Miasma (stealer)
  • Mini Shai-Hulud (stealer)

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

  • ✅ aikido.dev — source reconnue (Rösti community) (20pts)
  • ✅ 11356 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 3 IOCs (IPs/domaines/CVEs) (10pts)
  • ⬜ pas d’IOC vérifié (0pts)
  • ✅ 9 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ✅ acteur(s) identifié(s) : TeamPCP (5pts)
  • ⬜ pas de CVE à vérifier (0pts)

🔗 Source originale : https://www.aikido.dev/blog/red-hat-npm-packages-compromised-credential-stealing-worm