Deux versions d'Axios, téléchargé 83 millions de fois par semaine, ont été piégées avec un cheval de Troie capable de s'exécuter sur macOS, Windows et Linux. Une opération planifiée 18 heures à l'avance, conçue pour effacer ses propres traces après infection.

Alerte sécurité : Axios, la bibliothèque JavaScript installée 83 millions de fois par semaine, vient d'être piratée
Alerte sécurité : Axios, la bibliothèque JavaScript installée 83 millions de fois par semaine, vient d'être piratée

Axios est une bibliothèque JavaScript très répandue dans le développement web. Elle permet à une application de communiquer avec un serveur distant via des requêtes HTTP. Le 30 mars 2026, des attaquants ont compromis le compte npm de son principal mainteneur pour publier deux versions piégées : la 1.14.1 et la 0.30.4.

Une fausse dépendance pour déjouer les outils de détection

Les attaquants n'ont pas modifié une seule ligne de code d'Axios. Ils ont injecté une dépendance fictive nommée "plain-crypto-js@4.2.1". Il s'agit d'un paquet sans fonction légitime, dont le seul rôle est d'exécuter un script malveillant automatiquement lors de l'installation. Ce type d'injection via un composant tiers complique la détection : les outils d'analyse classiques comparent le code du projet principal, qui, lui, n'avait pas bougé.

La veille de l'attaque, une version propre du même package (4.2.0) avait été publiée pour lui donner une apparence crédible. Dix-huit heures plus tard, la version malveillante (4.2.1) est apparue. Puis, en moins de 40 minutes, les deux branches de production d'Axios ont été contaminées. Pour y parvenir, les attaquants ont pris le contrôle du compte npm de "jasonsaayman", le mainteneur principal, en remplaçant son adresse e-mail par une adresse Proton Mail sous leur contrôle.

L'accès a reposé sur un jeton d'accès npm dit "classique", à longue durée de vie. Ce type de jeton ne requiert pas de validation supplémentaire à chaque utilisation. Et c'est ce qui a permis de contourner le pipeline d'intégration continue de GitHub Actions sans déclencher d'alerte. Une fois les packages publiés, le malware s'est effacé lui-même et a remplacé les fichiers de configuration modifiés par des versions propres. Une technique bien évidemment pensée pour compliquer toute analyse forensique après coup.

axios RAT

Un cheval de Troie adapté à chaque système d'exploitation

Le script malveillant "setup.js" fonctionne comme un dropper : il détecte l'environnement de la machine cible, puis télécharge et exécute une charge utile adaptée au système. Sur macOS, un binaire en C++ est déposé dans "/Library/Caches/com.apple.act.mond" et contacte un serveur de commande distant toutes les 60 secondes. Sur Windows, le code se déguise en terminal Windows (wt.exe) et récupère un script PowerShell malveillant via VBScript. Sur Linux, un script Python est placé dans "/tmp/ld.py" et lancé en arrière-plan. Bref voilà donc une attaque multiOS bien organisée.

Un RAT - pour "Remote Access Trojan" - est un programme qui donne à son opérateur le contrôle à distance d'une machine : exécuter des commandes, parcourir le système de fichiers, déployer d'autres outils. Les analyses de StepSecurity et SafeDep montrent que les variantes macOS et Linux partagent les mêmes capacités. Aucun mécanisme de persistance n'a été détecté, ce qui suggère que l'objectif ciblait une exfiltration rapide de données ou le déploiement d'outils complémentaires avant toute détection.

Les deux versions infectées ont depuis été supprimées de npm. La société Socket a par ailleurs identifié deux packages distribuant le même malware : "@shadanai/openclaw" et "@qqbrowser/openclaw-qbot". Les développeurs concernés doivent rétrograder vers Axios 1.14.0 ou 0.30.3, supprimer "plain-crypto-js" du répertoire "node_modules", vérifier la présence des fichiers suspects sur leur machine, bloquer le domaine "sfrclak[.]com" et renouveler l'ensemble de leurs identifiants et tokens d'accès.