En bref
Que s'est-il passé ?
axios, client HTTP JavaScript le plus populaire (100+ M de téléchargements/semaine), est compromis : le 30 mars 2026, deux versions malveillantes (1.14.1 et 0.30.4) sont publiées sur npm.
Zéro ligne malveillante dans axios : les versions injectent une fausse dépendance (plain-crypto-js@4.2.1, jamais importée) dont le postinstall est un dropper RAT multiplateforme (macOS, Windows, Linux) contactant un C2 pour des charges de second étage.
Après exécution, le malware s'auto-efface et remplace son package.json par une version propre pour échapper à l'analyse. Attaque préméditée : dépendance mise en place 18 h à l'avance, charges pré-compilées pour trois OS.
Auditer les dépendances ajoutées (une dépendance non importée est suspecte), désactiver les scripts d'installation, filtrer l'egress pour couper le C2, et épingler par version et intégrité.
Chronologie de l'attaque
axios@1.14.1 et axios@0.30.4 sont publiés ; ils injectent plain-crypto-js@4.2.1, dont le postinstall déploie un RAT puis efface ses traces.
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
2FA et trusted publishing sur les comptes de publication ; détection de republication anormale.
Les exigences SOCLE qui auraient limité cet incident
Cet incident se rattache à 2 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 :