miércoles, febrero 4, 2026

La vulnerabilidad crítica de n8n (CVSS 10.0) permite a atacantes no autenticados tomar el control total

TecnologíaLa vulnerabilidad crítica de n8n (CVSS 10.0) permite a atacantes no autenticados tomar el control total

Investigadores de ciberseguridad han revelado detalles de otra falla de seguridad de máxima gravedad en n8n, una popular plataforma de automatización de flujo de trabajo, que permite a un atacante remoto no autenticado obtener control total sobre instancias susceptibles.

La vulnerabilidad, rastreada como CVE-2026-21858 (Puntuación CVSS: 10.0), ha recibido el nombre en código ni8mare por los laboratorios de investigación Cyera. El investigador de seguridad Dor Attias ha sido reconocido por descubrir e informar la falla el 9 de noviembre de 2025.

«Una vulnerabilidad en n8n permite a un atacante acceder a archivos en el servidor subyacente mediante la ejecución de ciertos flujos de trabajo basados ​​en formularios», dijo n8n en un aviso publicado hoy. «Un flujo de trabajo vulnerable podría otorgar acceso a un atacante remoto no autenticado. Esto podría resultar en la exposición de información confidencial almacenada en el sistema y puede permitir un mayor compromiso dependiendo de la configuración de implementación y el uso del flujo de trabajo».

Con el último desarrollo, n8n ha revelado cuatro vulnerabilidades críticas en las últimas dos semanas:

  • CVE-2025-68613 (Puntuación CVSS: 9,9): un control inadecuado de los recursos de código administrados dinámicamente que podría permitir a atacantes autenticados lograr la ejecución remota de código (RCE) bajo ciertas condiciones (corregido en las versiones 1.120.4, 1.121.1 y 1.122.0).
  • CVE-2025-68668 o N8scape (puntuación CVSS: 9,9): una vulnerabilidad de omisión de sandbox que podría permitir a un usuario autenticado con permiso crear o modificar flujos de trabajo para ejecutar comandos arbitrarios en el sistema host que ejecuta n8n (corregido en la versión 2.0.0).
  • CVE-2026-21877 (Puntuación CVSS: 10.0): una carga sin restricciones de un archivo con una vulnerabilidad de tipo peligroso que podría permitir a un atacante autenticado ejecutar código que no es de confianza a través del servicio n8n, lo que llevaría a un compromiso total de la instancia (corregido en la versión 1.121.3).

Sin embargo, a diferencia de estas fallas, CVE-2026-21858 no requiere ninguna credencial y aprovecha una falla de confusión de «tipo de contenido» para extraer secretos confidenciales, falsificar el acceso de administrador e incluso ejecutar comandos arbitrarios en el servidor.

La vulnerabilidad afecta a todas las versiones de n8n anteriores a la 1.65.0 incluida. Se solucionó en la versión 1.121.0, que se lanzó el 18 de noviembre de 2025. Vale la pena señalar que las últimas versiones de la biblioteca son 1.123.10, 2.1.5, 2.2.4 y 2.3.0.

Según los detalles técnicos compartidos por Cyera con The Hacker News, el meollo del problema tiene su origen en el webhook n8n y el mecanismo de manejo de archivos. Los webhooks, que son cruciales para recibir datos de aplicaciones y servicios cuando ocurren ciertos eventos, se activan después de que la solicitud entrante se analiza mediante una función llamada «parseRequestBody()».

Específicamente, la función está diseñada para leer el encabezado «Tipo de contenido» en la solicitud e invocar otra función para analizar el cuerpo de la solicitud:

  • Utilice parseFormData(), también conocido como «analizador de carga de archivos», si el encabezado «Tipo de contenido» es «multipart/form-data», que denota datos del formulario.
  • Utilice parseBody(), también conocido como «analizador de cuerpo normal» para todos los demás tipos de contenido.

El analizador de carga de archivos, a su vez, utiliza la función parse() asociada con formidable, un módulo de Node.js para analizar datos de formularios, y almacena el resultado decodificado en una variable global llamada «req.body.files». Estos datos completados son procesados ​​por el webhook, que solo se ejecuta cuando el encabezado «Tipo de contenido» está configurado en «multipart/form-data».

Por el contrario, el analizador de cuerpo normal procesa el cuerpo de la solicitud HTTP entrante y almacena los datos extraídos en una variable global diferente conocida como «req.body».

CVE-2026-21858 ocurre cuando se ejecuta una función de manejo de archivos sin verificar primero que el tipo de contenido sea «multipart/form-data», lo que potencialmente permite que un atacante anule req.body.files. Cyera dijo que encontró un flujo vulnerable en la función que maneja envíos de formularios («formWebhook()»), que invoca una función de manejo de archivos («copyBinaryFile()») para actuar sobre «req.body.files».

«Aquí está el problema: dado que esta función se llama sin verificar que el tipo de contenido sea ‘multipart/form-data’, controlamos todo el objeto req.body.files», dijo Attias. «Eso significa que controlamos el parámetro de ruta del archivo, por lo que en lugar de copiar un archivo cargado, podemos copiar cualquier archivo local del sistema».

«¿El resultado? Cualquier nodo después del nodo Formulario recibe el contenido del archivo local en lugar de lo que el usuario cargó».

En cuanto a cómo puede desarrollarse el ataque, considere un sitio web que tenga una interfaz de chat para proporcionar información sobre varios productos basándose en archivos de especificaciones de productos cargados en la base de conocimientos de la organización mediante un flujo de trabajo de formulario. Con esta configuración implementada, un mal actor puede aprovechar el agujero de seguridad para leer archivos arbitrarios de la instancia n8n y escalarlos a RCE realizando los siguientes pasos:

  • Utilice la primitiva de lectura arbitraria para acceder a la base de datos ubicada en «/home/node/.n8n/database.sqlite» y cárguela en la base de conocimientos.
  • Extraiga la identificación de usuario, el correo electrónico y la contraseña hash del administrador mediante la interfaz de chat
  • Utilice la primitiva de lectura arbitraria nuevamente para cargar un archivo de configuración ubicado en «/home/node/.n8n/config» y extraiga la clave secreta de cifrado
  • Utilice el usuario obtenido y la información clave para falsificar una cookie de sesión falsa y obtener acceso de administrador, lo que provocará una omisión de autenticación.
  • Logre RCE creando un nuevo flujo de trabajo con un nodo «Ejecutar comando»

«El radio de explosión de un n8n comprometido es enorme», dijo Cyera. «Una instancia n8n comprometida no significa solo perder un sistema, significa entregar a los atacantes las claves de todo. Credenciales API, tokens OAuth, conexiones de bases de datos, almacenamiento en la nube, todo centralizado en un solo lugar. n8n se convierte en un único punto de falla y una mina de oro para los actores de amenazas».

A la luz de la gravedad de la falla, se recomienda a los usuarios actualizar a la versión parcheada o posterior lo antes posible para obtener una protección óptima, evitar exponer n8n a Internet y aplicar la autenticación para todos los formularios. Como solución temporal, se recomienda restringir o deshabilitar los puntos finales de formulario y webhook de acceso público.

Artículos más populares