Comment vérifier si votre application est affectée par l'attaque supply chain Axios (et la corriger)

Le 31 mars 2026, le package npm axios — utilisé dans des millions de projets JavaScript — a été compromis dans une attaque supply chain. Les versions malveillantes 1.14.1 et 0.30.4 ont déployé un cheval de Troie d'accès à distance (RAT) via une dépendance cachée plain-crypto-js@4.2.1.
Ce guide vous accompagne dans la détection, l'analyse et la remédiation — avec des commandes terminal concrètes.
TL;DR : Lancez notre scanner automatisé : curl -fsSL https://noqta.tn/tools/check-axios-attack.sh | bash
Vérification rapide (30 secondes)
# 1. Vérifier le lockfile
grep -E "1\.14\.1|0\.30\.4" package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null
# 2. Vérifier la dépendance malveillante
ls node_modules/plain-crypto-js 2>/dev/null && echo "⚠️ AFFECTÉ!" || echo "✅ Propre"
# 3. Vérifier le système (macOS)
ls -la /Library/Caches/com.apple.act.mond 2>/dev/null && echo "⚠️ RAT TROUVÉ!" || echo "✅ Propre"Étape 1 : Scanner les lockfiles
package-lock.json (npm)
cat package-lock.json | python3 -c "
import json, sys
data = json.load(sys.stdin)
found = False
for path, info in data.get('packages', {}).items():
if 'axios' in path and info.get('version') in ['1.14.1', '0.30.4']:
print(f'⚠️ CRITIQUE: {path} → {info[\"version\"]}')
found = True
if 'plain-crypto-js' in path:
print(f'⚠️ CRITIQUE: Package malveillant à {path}')
found = True
if not found:
print('✅ Aucune version compromise trouvée')
"yarn.lock
grep -A 2 'axios@' yarn.lock | grep -E 'version "1\.14\.1"|version "0\.30\.4"'
grep 'plain-crypto-js' yarn.lockÉtape 2 : Vérifier node_modules
node -e "try { console.log('Version axios:', require('axios/package.json').version) } catch(e) { console.log('axios non installé') }"
find node_modules -name "plain-crypto-js" -type d 2>/dev/nullÉtape 3 : Vérifier les indicateurs RAT
macOS
[ -f "/Library/Caches/com.apple.act.mond" ] && echo "⚠️ RAT trouvé!" || echo "✅ Propre"
[ -f "/Library/LaunchDaemons/com.apple.act.mond.plist" ] && echo "⚠️ Persistance RAT!" || echo "✅ Propre"
lsof -i -P 2>/dev/null | grep -i "sfrclak\|:8000" && echo "⚠️ Connexion C2!" || echo "✅ Pas de connexion C2"Windows (PowerShell)
if (Test-Path "$env:PROGRAMDATA\wt.exe") { Write-Host "⚠️ RAT trouvé!" -ForegroundColor Red }
else { Write-Host "✅ Propre" -ForegroundColor Green }Linux
ss -tnp 2>/dev/null | grep -E "sfrclak|:8000" && echo "⚠️ Connexion C2!" || echo "✅ Propre"
crontab -l 2>/dev/null | grep -iE "sfrclak|plain-crypto" && echo "⚠️ Cron suspect!" || echo "✅ Propre"Étape 4 : Outil de scan automatisé
# Scan seul
curl -fsSL https://noqta.tn/tools/check-axios-attack.sh | bash
# Scan et correction automatique
curl -fsSL https://noqta.tn/tools/check-axios-attack.sh | bash -s -- --fix
# Projet spécifique
./check-axios-attack.sh --path /votre/projet --verbose
# Sortie JSON pour CI/CD
./check-axios-attack.sh --jsonÉtape 5 : Remédiation complète
Immédiat
rm -rf node_modules/plain-crypto-js
npm install axios@1.14.0 --save
rm -rf node_modules && npm ciRotation des identifiants
Changez tout : clés API, mots de passe BDD, tokens, clés SSH, certificats SSL.
Nettoyage système (si RAT trouvé)
# macOS
sudo rm -f /Library/Caches/com.apple.act.mond
sudo rm -f /Library/LaunchDaemons/com.apple.act.mond.plistÉtape 6 : Audit de sécurité
npm audit
npm audit fixÉtape 7 : Prévention
Fixer les versions
{ "dependencies": { "axios": "1.14.0" } }.npmrc
save-exact=true
audit=true2FA npm
npm profile enable-2fa auth-and-writesCI/CD
name: Supply Chain Check
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm audit --audit-level=critical
- run: curl -fsSL https://noqta.tn/tools/check-axios-attack.sh | bash --jsonFAQ
Combien de temps les versions malveillantes étaient-elles disponibles ?
Environ 2 heures (de ~00:00 à ~02:00 UTC le 31 mars 2026).
J'ai installé axios il y a des semaines — suis-je en sécurité ?
Si votre lockfile fixe une version autre que 1.14.1 ou 0.30.4, oui.
Le malware s'auto-détruit — suis-je en sécurité ?
Non. L'auto-destruction efface les traces d'installation, mais le binaire RAT peut encore tourner.
Puis-je utiliser fetch à la place d'axios ?
Oui. L'API fetch native est disponible dans Node.js 18+.
Besoin d'aide pour sécuriser votre infrastructure ? Noqta propose des audits de sécurité et du conseil DevSecOps. Contactez-nous.
Nouveau projet ? Consultez nos guides sur l'architecture API-first et le scan de sécurité IA.
Discutez de votre projet avec nous
Nous sommes ici pour vous aider avec vos besoins en développement Web. Planifiez un appel pour discuter de votre projet et comment nous pouvons vous aider.
Trouvons les meilleures solutions pour vos besoins.
Articles connexes

Biome : Remplacer ESLint et Prettier par un outil unique ultra-rapide
Découvrez comment migrer d'ESLint + Prettier vers Biome, le linter et formateur Rust ultra-rapide. Configuration, règles personnalisées, intégration CI/CD et VS Code — tout en un seul outil.

Créez votre première extension Chrome alimentée par l'IA avec Manifest V3 et OpenAI
Apprenez à créer une extension Chrome qui résume les pages web et explique du texte grâce à l'IA — étape par étape avec Manifest V3 et l'API OpenAI.

Construire des Microservices Node.js avec Docker, RabbitMQ et API Gateway
Apprenez à construire une architecture microservices prête pour la production avec Node.js, Docker Compose, RabbitMQ pour la messagerie asynchrone et un API Gateway. Ce tutoriel pratique couvre la décomposition des services, la communication inter-services, la conteneurisation et le déploiement.