Advisory · CVE-2026-118648
Stored XSS on n8n origin via webhook responses missing sandbox policy
Some n8n webhook response paths omit the sandbox Content-Security-Policy, letting an authenticated member serve HTML that runs on the n8n origin in a victim's session. Rated 8.4 on CVSS 4.0.
- Vendor
- n8n
- Product
- n8n
- Identifier / CWE
- CVE-2026-118648
CWE-79 - Action timing
- Immediate
Explain it like I’m five
A webhook reply is supposed to be treated as plain text in a sandbox. Some replies skip the sandbox, so a member's crafted page runs as if it were n8n itself in whoever opens it.
- 01Malicious workflow
An authenticated member creates and activates a workflow with crafted webhook responses.
- 02Sandbox policy missing
Error responses and responses without headers omit the sandbox Content-Security-Policy.
- 03Script runs on n8n origin
A user who opens the webhook URL runs the attacker's HTML with the n8n origin, acting with that user's session.
What happened
n8n before 1.123.85, 2.x before 2.43.5, and 2.44.x before 2.44.1 contains a stored cross-site scripting vulnerability because some webhook response paths, such as error responses and responses without headers, omit the sandbox Content-Security-Policy. Authenticated members who can create and activate workflows can serve HTML that runs on the n8n origin, letting scripts act with the session of users who open the webhook URL. The CVSS 4.0 score is 8.4.
The attacker needs member access to create workflows, so this is an insider-to-admin path rather than an external one, but on a shared automation instance any member’s webhook link can become a session-theft trap for admins.
What to do
- Inventory n8n instances with multiple members.
- Upgrade to 1.123.85, 2.43.5, or 2.44.1 on the matching release line.
- Limit workflow creation and activation rights until patched.
- Review webhook workflows for crafted HTML responses.
- Confirm the deployed version after patching.
Management note
Stored XSS on the application origin turns a low-privilege member into a session thief. On shared instances, treat member-created webhooks as untrusted content until patched.