CVE-2026-27493

n8n is an open source workflow automation platform. Prior to versions 2.10.1, 2.9.3, and 1.123.22, a second-order expression injection vulnerability existed in n8n's Form nodes that could allow an unauthenticated attacker to inject and evaluate arbitrary n8n expressions by submitting crafted form data. When chained with an expression sandbox escape, this could escalate to remote code execution on the n8n host. The vulnerability requires a specific workflow configuration to be exploitable. First, a form node with a field interpolating a value provided by an unauthenticated user, e.g. a form submitted value. Second, the field value must begin with an `=` character, which caused n8n to treat it as an expression and triggered a double-evaluation of the field content. There is no practical reason for a workflow designer to prefix a field with `=` intentionally — the character is not rendered in the output, so the result would not match the designer's expectations. If added accidentally, it would be noticeable and very unlikely to persist. An unauthenticated attacker would need to either know about this specific circumstance on a target instance or discover a matching form by chance. Even when the preconditions are met, the expression injection alone is limited to data accessible within the n8n expression context. Escalation to remote code execution requires chaining with a separate sandbox escape vulnerability. The issue has been fixed in n8n versions 2.10.1, 2.9.3, and 1.123.22. Users should upgrade to one of these versions or later to remediate the vulnerability. If upgrading is not immediately possible, administrators should consider the following temporary mitigations. Review usage of form nodes manually for above mentioned preconditions, disable the Form node by adding `n8n-nodes-base.form` to the `NODES_EXCLUDE` environment variable, and/or disable the Form Trigger node by adding `n8n-nodes-base.formTrigger` to the `NODES_EXCLUDE` environment variable. These workarounds do not fully remediate the risk and should only be used as short-term mitigation measures.
Configurations

Configuration 1 (hide)

OR cpe:2.3:a:n8n:n8n:*:*:*:*:*:node.js:*:*
cpe:2.3:a:n8n:n8n:*:*:*:*:*:node.js:*:*
cpe:2.3:a:n8n:n8n:*:*:*:*:*:node.js:*:*

History

05 Mar 2026, 16:29

Type Values Removed Values Added
First Time N8n n8n
N8n
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 9.0
CPE cpe:2.3:a:n8n:n8n:*:*:*:*:*:node.js:*:*
References () https://github.com/n8n-io/n8n/commit/562d867483e871b0f1e31776252e23bd721df75b - () https://github.com/n8n-io/n8n/commit/562d867483e871b0f1e31776252e23bd721df75b - Patch
References () https://github.com/n8n-io/n8n/issues/19 - () https://github.com/n8n-io/n8n/issues/19 - Issue Tracking
References () https://github.com/n8n-io/n8n/releases/tag/n8n@1.123.22 - () https://github.com/n8n-io/n8n/releases/tag/n8n@1.123.22 - Product
References () https://github.com/n8n-io/n8n/releases/tag/n8n@2.10.1 - () https://github.com/n8n-io/n8n/releases/tag/n8n@2.10.1 - Product
References () https://github.com/n8n-io/n8n/releases/tag/n8n@2.9.3 - () https://github.com/n8n-io/n8n/releases/tag/n8n@2.9.3 - Product
References () https://github.com/n8n-io/n8n/security/advisories/GHSA-75g8-rv7v-32f7 - () https://github.com/n8n-io/n8n/security/advisories/GHSA-75g8-rv7v-32f7 - Vendor Advisory, Mitigation

27 Feb 2026, 14:06

Type Values Removed Values Added
Summary
  • (es) n8n es una plataforma de automatización de flujos de trabajo de código abierto. Antes de las versiones 2.10.1, 2.9.3 y 1.123.22, existía una vulnerabilidad de inyección de expresiones de segundo orden en los nodos de formulario de n8n que podría permitir a un atacante no autenticado inyectar y evaluar expresiones n8n arbitrarias al enviar datos de formulario manipulados. Cuando se encadena con un escape de sandbox de expresiones, esto podría escalar a ejecución remota de código en el host n8n. La vulnerabilidad requiere una configuración de flujo de trabajo específica para ser explotable. Primero, un nodo de formulario con un campo que interpola un valor proporcionado por un usuario no autenticado, p. ej., un valor enviado en un formulario. Segundo, el valor del campo debe comenzar con un carácter '=', lo que hizo que n8n lo tratara como una expresión y desencadenara una doble evaluación del contenido del campo. No hay una razón práctica para que un diseñador de flujo de trabajo prefije un campo con '=' intencionalmente — el carácter no se renderiza en la salida, por lo que el resultado no coincidiría con las expectativas del diseñador. Si se añade accidentalmente, sería notorio y muy poco probable que persistiera. Un atacante no autenticado necesitaría conocer esta circunstancia específica en una instancia objetivo o descubrir un formulario coincidente por casualidad. Incluso cuando se cumplen las precondiciones, la inyección de expresiones por sí sola se limita a los datos accesibles dentro del contexto de expresiones de n8n. La escalada a ejecución remota de código requiere encadenarse con una vulnerabilidad de escape de sandbox separada. El problema ha sido solucionado en las versiones de n8n 2.10.1, 2.9.3 y 1.123.22. Los usuarios deben actualizar a una de estas versiones o posteriores para remediar la vulnerabilidad. Si la actualización no es posible de inmediato, los administradores deben considerar las siguientes mitigaciones temporales. Revisar manualmente el uso de los nodos de formulario para las precondiciones mencionadas anteriormente, deshabilitar el nodo Formulario añadiendo 'n8n-nodes-base.form' a la variable de entorno 'NODES_EXCLUDE', y/o deshabilitar el nodo Form Trigger añadiendo 'n8n-nodes-base.formTrigger' a la variable de entorno 'NODES_EXCLUDE'. Estas soluciones alternativas no remedian completamente el riesgo y solo deben usarse como medidas de mitigación a corto plazo.

25 Feb 2026, 23:16

Type Values Removed Values Added
New CVE

Information

Published : 2026-02-25 23:16

Updated : 2026-03-05 16:29


NVD link : CVE-2026-27493

Mitre link : CVE-2026-27493

CVE.ORG link : CVE-2026-27493


JSON object : View

Products Affected

n8n

  • n8n
CWE
CWE-94

Improper Control of Generation of Code ('Code Injection')

CWE-95

Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection')