En bref
Que s'est-il passé ?
Le ver Miasma compromet 57 paquets npm (286+ versions) en moins de deux heures. La plus grosse victime : @vapi-ai/server-sdk (SDK voix Vapi.ai, 408 000+ dl/mois), frappée la première le 3 juin 2026 à 23h30 UTC.
Technique « Phantom Gyp » : au lieu des hooks preinstall/postinstall surveillés, l'attaquant abuse d'un fichier binding.gyp de 157 octets pour déclencher l'exécution pendant le npm install, contournant la plupart des contrôles de scripts d'installation.
Une heure après Vapi, 50+ paquets du mainteneur jagreehal (dont ai-sdk-ollama, 120 000+ dl/mois). Les credentials volés sont exfiltrés vers GitHub (compte liuende501, 236 dépôts dead-drop), uploadés en JSON chiffré ; descriptions taguées « Miasma » et « Shai-Hulud: Here We Go Again ».
Confiner le npm install (sandbox, egress filtré) au-delà des seuls hooks de cycle de vie, se méfier des fichiers de build (binding.gyp), jetons courts, et détecter les dépôts dead-drop et publications anormales.
Chronologie de l'attaque
Le ver Miasma compromet 32 paquets du namespace @redhat-cloud-services.
À 23h30 UTC, @vapi-ai/server-sdk est frappé ; une heure plus tard, 50+ paquets de jagreehal suivent (57 paquets, 286+ versions en moins de 2 heures).
Comment l'attaquant a procédé
Cet incident met en jeu les vecteurs d'attaque suivants du catalogue SOCLE ; chacun renvoie à sa fiche, où l'on trouve les exigences qui le neutralisent :
La leçon à en tirer
Permissions CI minimales ; épinglage des actions ; isolation des runners ; détection comportementale.
Les exigences SOCLE qui auraient limité cet incident
Cet incident se rattache à 13 exigences du référentiel, par domaine. Les satisfaire n'aurait pas forcément tout empêché, mais aurait réduit la probabilité de l'attaque, limité son impact ou accéléré sa détection :