
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
Resultados de la Prueba Rápida:
[Test] Detección de Vulnerabilidad de Versión [OK]
[Test] Carga de Configuración [OK]
[Test] Creación del Escáner [OK]
[Test] Creación del Detector [OK]
[Test] Creación del Generador de Informes [OK]
[Test] Funciones de Utilidad [OK]
Resultados: 6 aprobados, 0 fallidos
# Instalar dependencias
python build.py install
# Ejecutar todas las pruebas
python build.py test
# Ejecutar linters
python build.py lint
# Formatear código
python build.py format
# Compilar distribución
python build.py build
# Limpiar artefactos
python build.py clean
# Pipeline de compilación completo
python build.py all
El escáner requiere autorización explícita:
⚠️ AUTORIZACIÓN REQUERIDA
Está a punto de escanear: https://n8n.example.com:5678
¿Está autorizado para probar este objetivo? [y/N]:
Requerido:
Prohibido:
Si descubre instancias vulnerables:
CVE-2026-21858 descubierto por:
Este escáner fue desarrollado como una herramienta de seguridad ética para ayudar a las organizaciones a identificar y remediar la vulnerabilidad Ni8mare. Realiza solo detección y nunca explota vulnerabilidades.
Licencia MIT - Consulte el archivo LICENSE para más detalles.
Componentes de Terceros:
enhancementP: ¿Esto explotará la vulnerabilidad?
R: No. Solo detección, nunca explota.
P: ¿Puedo escanear sin autorización?
R: No. Siempre obtenga autorización por escrito primero.
P: ¿Qué versiones son vulnerables?
R: Todas las versiones de n8n anteriores a 1.121.0 son vulnerables.
P: ¿Qué tan precisa es la detección?
R: Precisión muy alta con bajas tasas de falsos positivos.
P: ¿Puedo usarlo en pipelines de CI/CD?
R: Sí. Use --no-confirm y --json-logs para automatización.
P: ¿Funciona en Windows?
R: Sí. Todos los problemas de compatibilidad Unicode han sido resueltos.
cd ni8mare-scanner/scripts
pip install -r requirements.txt
# Comprobación de versión
python n8n_scanner.py version-check 1.120.0
# Escaneo de instancia
python n8n_scanner.py scan https://n8n.example.com:5678
# Escaneo por lotes
python n8n_scanner.py batch targets.txt
# Generar configuración
python n8n_scanner.py generate-config --format yaml > config.yml
# Mostrar ayuda
python n8n_scanner.py --help
python n8n_scanner.py scan --help
0 = Seguro/Éxito1 = Error2 = VulnerableHecho con ❤️ para la comunidad de seguridad
Esta herramienta se proporciona tal cual para pruebas de seguridad éticas únicamente. Los autores no son responsables del mal uso o daños causados por esta herramienta.