
Outil complet de détection de vulnérabilités pour les instances d’automatisation de workflows n8n. Détecte la vulnérabilité critique CVE-2026-21858 (CVSS 10.0) sans effectuer aucune exploitation.
Scanner de sécurité éthique pour CVE-2026-21858 (Vulnérabilité Ni8mare)
« Le savoir est un pouvoir, mais seulement s'il est partagé de manière responsable. »
Outil complet de détection de vulnérabilités pour les instances d'automatisation de workflows n8n. Détecte la vulnérabilité critique CVE-2026-21858 (CVSS 10.0) sans effectuer aucune exploitation.
# Naviguer vers le répertoire des scripts
cd ni8mare-scanner/scripts
# Installer les dépendances
pip install -r requirements.txt
# Vérifier si une version est vulnérable
python n8n_scanner.py version-check 1.120.0
# Scanner une instance en direct
python n8n_scanner.py scan https://n8n.example.com:5678
# Obtenir les informations sur la CVE
python n8n_scanner.py info
Sévérité : CVSS 10.0 (Critique)
Corrigé dans : n8n v1.121.0
Découvert par : Dor Attias (Cyera Research Labs)
Outil maintenu par : CropNet sur GitHub, par l'équipe de recherche de l'organisation Schema.cx
Vulnérabilité critique permettant à des attaquants non authentifiés de lire des fichiers arbitraires via une confusion de type de contenu.
Ce scanner effectue une détection non invasive uniquement - il n'exploite jamais la vulnérabilité.
# Vérifier une version vulnérable
python n8n_scanner.py version-check 1.120.0
# Sortie : Statut 🔴 VULNÉRABLE (code de sortie 2)
# Vérifier une version sûre
python n8n_scanner.py version-check 1.121.0
# Sortie : Statut 🟢 Non vulnérable (code de sortie 0)
# Scan de base
python n8n_scanner.py scan https://n8n.example.com:5678
# Scan approfondi avec sortie JSON
python n8n_scanner.py scan https://n8n.example.com:5678 \
--intensity deep \
--format json \
--output report.json
# Ignorer l'invite d'autorisation (pour les scans pré-autorisés)
python n8n_scanner.py scan https://n8n.example.com:5678 --no-confirm
# Créer un fichier de cibles
cat > targets.txt << EOF
https://n8n1.example.com:5678
https://n8n2.example.com:5678
https://n8n3.example.com:5678
EOF
# Scanner toutes les cibles
python n8n_scanner.py batch targets.txt --output results.csv --format csv
# Générer une config YAML vers la sortie standard
python n8n_scanner.py generate-config --format yaml
# Générer une config JSON vers un fichier
python n8n_scanner.py generate-config --format json --output config.json
# Utiliser un fichier de config pour le scan
python n8n_scanner.py scan https://n8n.example.com:5678 --config config.json
| Commande | Description | Exemple |
|---|---|---|
scan | Scanner une seule cible | python n8n_scanner.py scan <target> |
batch | Scanner plusieurs cibles | python n8n_scanner.py batch targets.txt |
version-check | Vérifier la vulnérabilité d'une version | python n8n_scanner.py version-check 1.120.0 |
generate-config | Générer un modèle de configuration | python n8n_scanner.py generate-config --format yaml |
info | Afficher les informations sur la CVE | python n8n_scanner.py info |
connectivity | Tester la connectivité | python n8n_scanner.py connectivity <target> |
scanpython n8n_scanner.py scan <target> [OPTIONS]
Options :
--intensity, -i - Intensité du scan : light, medium, deep (défaut : medium)--output, -o - Chemin du fichier de sortie--format, -f - Format de sortie : json, csv, html, text, markdown--timeout, -t - Délai d'expiration des requêtes en secondes (défaut : 30)--delay, -d - Délai entre les requêtes (défaut : 2.0)--no-confirm - Ignorer la confirmation d'autorisation--config, -c - Chemin du fichier de configuration--verbose, -V - Sortie détaillée--json-logs - Format de journal JSON (pour l'automatisation)version-checkpython n8n_scanner.py version-check <version_or_url>
Codes de sortie :
0 - La version est sûre (corrigée)1 - Une erreur s'est produite2 - La version est vulnérableExemples :
# Vérifier une chaîne de version
python n8n_scanner.py version-check 1.120.0
# Vérifier la version d'une instance en direct
python n8n_scanner.py version-check https://n8n.example.com:5678
# config.yml
scan:
intensity: medium
timeout: 30
rate_limit:
delay: 2.0
max_requests: 100
targets:
- https://n8n.example.com:5678
require_confirmation: true
output:
format: json
directory: ./reports
Quatre profils préconfigurés disponibles :
Générer avec : python n8n_scanner.py generate-config --profile thorough
{
"target": "https://n8n.example.com:5678",
"version": "1.120.0",
"vulnerable": true,
"cve": "CVE-2026-21858",
"severity": "CRITICAL"
}
Target,Version,Vulnerable,CVE,Severity
https://n8n.example.com:5678,1.120.0,true,CVE-2026-21858,CRITICAL
Rapports HTML professionnels avec styles et graphiques.
Sortie lisible par l'humain avec codes couleur et indicateurs de sévérité.
Format adapté à la documentation pour wikis et rapports.
# Construire avec Docker Compose
docker-compose build
# Exécuter des commandes
docker-compose run --rm scanner version-check 1.120.0
docker-compose run --rm scanner scan https://n8n.example.com:5678 --no-confirm
# Scan par lots avec fichier monté
docker-compose run --rm \
-v $(pwd)/targets.txt:/app/targets.txt \
scanner batch /app/targets.txt
ni8mare-scanner/
├── scripts/
│ ├── n8n_scanner.py # CLI principale
│ ├── modules/ # Modules principaux
│ │ ├── scanner.py # Logique de scan
│ │ ├── detector.py # Détection de vulnérabilité
│ │ ├── reporter.py # Génération de rapports
│ │ ├── config.py # Configuration
│ │ └── utils.py # Utilitaires
│ ├── tests/ # Suite de tests
│ └── build.py # Automatisation de la construction
├── docs/ # Documentation
└── docker/ # Configurations Docker
# Test de fonctionnalité rapide (recommandé)
cd scripts
python quick_test.py
# Suite de tests complète
python build.py test
# Tester un module spécifique
python -m pytest tests/test_config.py -v