En bref
Que s'est-il passé ?
Le 8 juin 2026, un attaquant compromet le compte GitHub d'un cofondateur de Pythagora-io/gpt-pilot (outil IA de dev, 33 700+ étoiles) et force-push une charge voleuse de credentials sur la branche main, dépourvue de protection.
Variante du ver Shai-Hulud : un voleur JS obfusqué (758 Ko) cible AWS, npm, GitHub, Kubernetes, Vault et SSH, utilise les messages de commit GitHub comme C2, et peut signer et publier des paquets npm avec attestation SLSA L3 valide via Sigstore.
L'attaque est stoppée par ruff, un formateur Python : le fichier injecté ne respectait pas les règles de formatage/lint du projet et a échoué deux fois en CI. La même famille a touché Microsoft, Red Hat et Mistral AI cette année.
Protection de branche stricte sur main (revue obligatoire, pas de force-push), MFA sur les comptes mainteneurs, lint et format bloquants en CI (défense fortuite ici), et jetons de publication courts.
Chronologie de l'attaque
Le compte d'un cofondateur est détourné ; à 11h01 UTC, l'historique de main est réécrit par un force-push portant la charge.
Le fichier malveillant, non conforme aux règles ruff, échoue deux fois la CI, ce qui bloque l'intégration.
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
Identités de publication courtes (OIDC) ; détection de republication ; confinement du rayon d'explosion (egress filtre).
Les exigences SOCLE qui auraient limité cet incident
Cet incident se rattache à 23 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 :