
Herramienta integral de detección de vulnerabilidades para instancias de automatización de flujos de trabajo n8n. Detecta la vulnerabilidad crítica CVE-2026-21858 (CVSS 10.0) sin realizar ninguna explotación.
Escáner de Seguridad Ético para CVE-2026-21858 (Vulnerabilidad Ni8mare)
"El conocimiento es poder, pero solo si se comparte de forma responsable."
Herramienta integral de detección de vulnerabilidades para instancias de automatización de flujos de trabajo n8n. Detecta la vulnerabilidad crítica CVE-2026-21858 (CVSS 10.0) sin realizar ninguna explotación.
# Navegar al directorio de scripts
cd ni8mare-scanner/scripts
# Instalar dependencias
pip install -r requirements.txt
# Comprobar si una versión es vulnerable
python n8n_scanner.py version-check 1.120.0
# Escanear una instancia en vivo
python n8n_scanner.py scan https://n8n.example.com:5678
# Obtener información del CVE
python n8n_scanner.py info
Gravedad: CVSS 10.0 (Crítica)
Corregido en: n8n v1.121.0
Descubierto por: Dor Attias (Cyera Research Labs)
Mantenido por: CropNet en GitHub, por el equipo de investigación de Schema.cx
Vulnerabilidad crítica que permite a atacantes no autenticados leer archivos arbitrarios mediante confusión de tipo de contenido (Content-Type).
Este escáner realiza solo detección no invasiva: nunca explota la vulnerabilidad.
# Comprobar versión vulnerable
python n8n_scanner.py version-check 1.120.0
# Salida: Estado 🔴 VULNERABLE (código de salida 2)
# Comprobar versión segura
python n8n_scanner.py version-check 1.121.0
# Salida: Estado 🟢 No Vulnerable (código de salida 0)
# Escaneo básico
python n8n_scanner.py scan https://n8n.example.com:5678
# Escaneo profundo con salida JSON
python n8n_scanner.py scan https://n8n.example.com:5678 \
--intensity deep \
--format json \
--output report.json
# Omitir solicitud de autorización (para escaneos preautorizados)
python n8n_scanner.py scan https://n8n.example.com:5678 --no-confirm
# Crear archivo de objetivos
cat > targets.txt << EOF
https://n8n1.example.com:5678
https://n8n2.example.com:5678
https://n8n3.example.com:5678
EOF
# Escanear todos los objetivos
python n8n_scanner.py batch targets.txt --output results.csv --format csv
# Generar configuración YAML en stdout
python n8n_scanner.py generate-config --format yaml
# Generar configuración JSON en archivo
python n8n_scanner.py generate-config --format json --output config.json
# Usar archivo de configuración para escanear
python n8n_scanner.py scan https://n8n.example.com:5678 --config config.json
| Comando | Descripción | Ejemplo |
|---|---|---|
scan | Escanear un solo objetivo | python n8n_scanner.py scan <target> |
batch | Escanear múltiples objetivos | python n8n_scanner.py batch targets.txt |
version-check | Comprobar vulnerabilidad de versión | python n8n_scanner.py version-check 1.120.0 |
generate-config | Generar plantilla de configuración | python n8n_scanner.py generate-config --format yaml |
info | Mostrar información del CVE | python n8n_scanner.py info |
connectivity | Probar conectividad | python n8n_scanner.py connectivity <target> |
scanpython n8n_scanner.py scan <target> [OPTIONS]
Opciones:
--intensity, -i - Intensidad de escaneo: light, medium, deep (predeterminado: medium)--output, -o - Ruta del archivo de salida--format, -f - Formato de salida: json, csv, html, text, markdown--timeout, -t - Tiempo de espera de solicitud en segundos (predeterminado: 30)--delay, -d - Retraso entre solicitudes (predeterminado: 2.0)--no-confirm - Omitir confirmación de autorización--config, -c - Ruta del archivo de configuración--verbose, -V - Salida detallada--json-logs - Formato de registro JSON (para automatización)version-checkpython n8n_scanner.py version-check <version_or_url>
Códigos de Salida:
0 - La versión es segura (parcheada)1 - Ocurrió un error2 - La versión es vulnerableEjemplos:
# Comprobar cadena de versión
python n8n_scanner.py version-check 1.120.0
# Comprobar versión de instancia en vivo
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
Cuatro perfiles preconfigurados disponibles:
Generar con: 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
Informes HTML profesionales con estilos y gráficos.
Salida legible por humanos con códigos de color e indicadores de gravedad.
Formato apto para documentación en wikis e informes.
# Compilar con Docker Compose
docker-compose build
# Ejecutar comandos
docker-compose run --rm scanner version-check 1.120.0
docker-compose run --rm scanner scan https://n8n.example.com:5678 --no-confirm
# Escaneo por lotes con archivo montado
docker-compose run --rm \
-v $(pwd)/targets.txt:/app/targets.txt \
scanner batch /app/targets.txt
ni8mare-scanner/
├── scripts/
│ ├── n8n_scanner.py # CLI principal
│ ├── modules/ # Módulos principales
│ │ ├── scanner.py # Lógica de escaneo
│ │ ├── detector.py # Detección de vulnerabilidades
│ │ ├── reporter.py # Generación de informes
│ │ ├── config.py # Configuración
│ │ └── utils.py # Utilidades
│ ├── tests/ # Suite de pruebas
│ └── build.py # Automatización de compilación
├── docs/ # Documentación
└── docker/ # Configuraciones Docker
# Prueba rápida de funcionalidad (recomendada)
cd scripts
python quick_test.py
# Suite de pruebas completa
python build.py test
# Probar módulo específico
python -m pytest tests/test_config.py -v