En bref

  • Le paquet npm Axios, téléchargé 100 millions de fois par semaine, a été compromis fin mars 2026 via le compte du mainteneur jasonsaayman.
  • Les versions malveillantes 1.14.1 et 0.30.4 installent un RAT multi-plateforme (Windows, macOS, Linux) via un postinstall hook.
  • Microsoft Threat Intelligence attribue l'attaque à Sapphire Sleet, un groupe étatique nord-coréen, et la CISA a émis une alerte le 20 avril.

Une dépendance JavaScript critique détournée

Le 31 mars 2026, le compte npm du mainteneur jasonsaayman a été détourné, ouvrant la voie à la publication de deux versions piégées d'Axios, la bibliothèque HTTP JavaScript qui cumule près de 100 millions de téléchargements hebdomadaires sur le registre public. Les paquets malveillants 1.14.1 (tagué latest) et 0.30.4 (tagué legacy) embarquaient une dépendance inédite, plain-crypto-js, chargée d'exfiltrer les variables d'environnement et les identifiants des postes de développement et des chaînes d'intégration continue. L'attaque axios npm sapphire sleet est attribuée au groupe nord-coréen Sapphire Sleet, connu pour ses opérations de vol de cryptoactifs et son ciblage méthodique des développeurs. Retirées du registre quelques heures après leur mise en ligne, les versions compromises ont malgré tout été récupérées par des milliers de projets, faisant de cet incident l'une des compromissions de la chaîne logistique logicielle les plus étendues de l'année.

Selon Elastic Security Labs, l'implant se décline en trois versions natives partageant le même protocole C2, la même structure de commandes et le même comportement de beacon : un RAT unique recompilé pour Windows, macOS et Linux. Les chercheurs y voient non pas trois outils distincts mais un framework d'implant cross-platform avec des variantes adaptées à chaque OS. Cette approche, déjà observée dans les opérations précédentes attribuées à Pyongyang, dont la compromission du CFO Zerion via social engineering IA, démontre la maturité offensive croissante du régime sur le terrain de la supply chain logicielle.

Le 20 avril 2026, la CISA a publié un bulletin officiel recommandant aux administrations fédérales américaines de revenir immédiatement aux versions saines 1.14.0 ou 0.30.3 et de purger le dossier node_modules/plain-crypto-js/. L'agence française ANSSI et le CERT-FR ont relayé l'alerte auprès des OIV et OSE, en parallèle d'autres campagnes récentes exploitant les webhooks n8n pour diffuser des outils RMM détournés.

Pourquoi c'est important

Axios figure dans le top 10 des dépendances JavaScript les plus utilisées au monde. Un projet React, Vue, Node.js ou Deno sur deux l'importe, souvent de manière transitive via des frameworks tiers. Une compromission de ce maillon équivaut à une attaque de supply chain massive, comparable à l'affaire event-stream de 2018 mais à une échelle cent fois supérieure. Le fait que l'attaque soit restée indétectée plusieurs heures sur le registre npm officiel, alors même que les scripts postinstall sont une surface d'attaque documentée depuis des années, interroge la capacité du registre à filtrer les soumissions malveillantes.

L'attribution à Sapphire Sleet n'est pas anecdotique : ce cluster nord-coréen privilégie la persistance silencieuse dans les environnements de développement pour siphonner progressivement tokens GitHub, clés cloud AWS, Azure et GCP, et secrets CI/CD. Pour une entreprise SaaS qui n'a pas audité ses builds sur la période, le risque n'est pas la perte de données clients immédiate mais l'implantation d'une porte dérobée durable dans ses images Docker ou ses artefacts déployés en production. Microsoft, GitHub, npm et Socket ont collaboré pour désactiver les versions piégées, rouvrir le compte compromis avec MFA forcée et diffuser des IOC aux SOC mondiaux. Cette compromission intervient dans un contexte déjà tendu, après le piratage de Vercel via Context.ai et les alertes répétées du NIST qui vient de réduire son enrichissement des CVE face à l'explosion des soumissions.

Ce qu'il faut retenir

  • Audit immédiat des lockfiles (package-lock.json, yarn.lock, pnpm-lock.yaml) à la recherche des versions 1.14.1 ou 0.30.4 d'Axios.
  • Rotation obligatoire des secrets (tokens npm, clés SSH, credentials VCS et cloud) présents sur les machines ayant exécuté l'install.
  • Défense en profondeur : désactiver les scripts postinstall non essentiels via npm ci --ignore-scripts et adopter une politique de signature des paquets côté CI.

Comment vérifier rapidement si mon projet est affecté ?

Recherchez la présence de plain-crypto-js dans vos node_modules et vérifiez la version d'Axios avec npm ls axios. Si la version est 1.14.1 ou 0.30.4, considérez le système comme potentiellement compromis : isolez-le, collectez les IOC réseau vers sfrclak[.]com et engagez une procédure de rotation complète des secrets.

Quels secrets faut-il renouveler en priorité ?

En ordre de priorité : les tokens npm du développeur, les tokens GitHub personnels et d'organisation, les clés SSH du poste, les credentials AWS/Azure/GCP présents dans l'environnement, puis les secrets CI/CD stockés dans GitHub Actions, GitLab CI ou Jenkins. N'oubliez pas les tokens de déploiement Vercel, Netlify ou Railway qui peuvent avoir été exfiltrés.

Besoin d'un accompagnement expert ?

Ayi NEDJIMI vous accompagne sur vos projets cybersécurité et IA.

Prendre contact