Le monde du développement JavaScript est en état de choc. Axios, l'une des bibliothèques les plus populaires pour effectuer des requêtes HTTP, avec plus de 100 millions de téléchargements hebdomadaires, a été compromise. Cette attaque, décrite par les experts de StepSecurity comme l'une des plus sophistiquées à ce jour, a permis l'injection d'un cheval de Troie via une simple commande
npm install.Le mode opératoire : une précision chirurgicale
L'attaque ne repose pas sur une faille technique d'Axios, mais sur une compromission humaine. Un pirate a réussi à prendre le contrôle du compte npm d'un mainteneur principal du projet. Pour verrouiller son accès, l'attaquant a immédiatement modifié l'adresse e-mail associée au compte par une adresse anonyme (ProtonMail).
Une fois maître du compte, le pirate a publié manuellement deux versions infectées :
axios@1.14.1
axios@0.30.4
Une attaque "invisible" par dépendance fantôme
La sophistication réside dans la discrétion. Si un développeur avait examiné le code source d'Axios dans ces versions, il n'aurait rien trouvé de suspect. Le code malveillant n'était pas dans Axios, mais injecté via une fausse dépendance ajoutée au fichier package.json : plain-crypto-js.
Dès que l'utilisateur lançait une installation, ce package secondaire installait un Remote Access Trojan (RAT) — un outil de prise de contrôle à distance — sur la machine de la victime.
Les caractéristiques de l'attaque :
Multiplateforme : Des charges malveillantes spécifiques ont été conçues pour Windows, macOS et Linux.
Contournement de la sécurité : Les versions ont été publiées directement sur npm, contournant totalement les pipelines de vérification automatique (CI/CD) et ne laissant aucune trace (aucun "tag") sur le dépôt GitHub officiel.
Autodestruction : Les traces de l'infection étaient programmées pour s'effacer automatiquement après l'exécution du malware
Que faire en cas de doute ?
Si vous utilisez Axios dans vos projets :
Vérifiez vos versions : Comparez les versions installées dans votre
package-lock.jsonavec les releases officielles sur le GitHub d'Axios.Utilisez des outils d'audit : Lancez régulièrement
npm auditou utilisez des outils comme Snyk ou Socket.dev pour détecter des dépendances malveillantes.Verrouillez vos versions : Ne laissez pas le symbole
^(caret) devant vos versions dans lepackage.jsonpour éviter des mises à jour automatiques vers des versions mineures potentiellement compromises.
Par Aghilas AZZOUG


