What is a Stored XSS Vulnerability?

A stored XSS (Cross-Site Scripting) vulnerability occurs when an attacker is able to inject malicious code, typically JavaScript, into a web application. This code is then stored on the server and executed by the web application when a user accesses a specific page or resource.

Impact of the Vulnerability in n8n's Chat Trigger Node

In the case of n8n's Chat Trigger Node, an authenticated user with workflow edit access could inject arbitrary JavaScript into the Chat Trigger's generated page by setting a malicious `webhookId`. When a logged-in user visited the chat URL, the injected code executed in the n8n origin with that user's session privileges. This could lead to unauthorized actions or data breaches.

Mitigation and Patches

The issue has been fixed in n8n versions 1.123.55, 2.25.7, and 2.26.2. Users should upgrade to one of these versions or later to remediate the vulnerability.

Temporary Workarounds

If upgrading is not immediately possible, administrators can consider the following temporary mitigations:

  • Limit workflow creation and editing permissions to fully trusted users only.
  • Disable the Chat Trigger node by adding `@n8n/n8n-nodes-langchain.chatTrigger` to the `NODES_EXCLUDE` environment variable.

These workarounds do not fully remediate the risk and should only be used as short-term mitigation measures.