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.