Aller au contenu
Sécurité medium

Miasma (ver via GitHub Actions)

3 min de lecture
Point de compromission dans la chaîne Rupture · étape CI/CD
Source
amont
Dépendances
deps
Build & CI
CI/CD
Packaging
artefact
Release
provenance
Registres
distribution
Déploiement
admission
Runtime
exécution
Rayon d'explosion — compromission à l'étape CI/CD, propagation possible aux consommateurs. Domaines : Orchestration, Source, Intégration, Release, Fournisseurs, Secrets
Gravité critique
Ver auto-propageant via GitHub Actions ciblant les agents de codage IA ; des dizaines de dépôts désactivés après compromission.
57 paquets
compromis (286+ ver.)
<2 h
durée de la vague
408 000/mois
dl @vapi-ai
157 octets
binding.gyp piégé

En bref

Date
04/06/2026
Gravité
Critique
Étape de la chaîne
CI/CD
Domaines SOCLE
Orchestration+ Source, Intégration, Release, Fournisseurs, Secrets

Que s'est-il passé ?

Contexte

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.

Mécanisme

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.

Impact

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 ».

Parades

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

1er juin 2026
Vague RedHat

Le ver Miasma compromet 32 paquets du namespace @redhat-cloud-services.

3 juin 2026
Pic Vapi.ai et jagreehal

À 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

Ce qu'il faut retenir

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 :

Pour aller plus loin

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn