CVE-2026-86083
High · 8.8CVSS
8.8
EPSS
0.7%
Published
Sep 8, 2026
CISA due date
—
Cloudanix analysis
A bug in a workflow automation product can let a logged-in user run unauthorized programs on the server and reach connected systems and secrets.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Remote Code Execution
- Component
- Application
- Class
- RCE
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
On n8n instances using the legacy expression engine, a workflow expression can replace the mutable global JSON.stringify that the engine uses when generating source text (synthetic string literals and timezone interpolation). Later compilation then embeds attacker-controlled executable content into generated source, yielding remote code execution in the n8n process. The vm expression engine is not affected.
Why it matters to the business
A successful attack can take over the n8n host, expose stored credentials and workflow data, and abuse connected SaaS, cloud, and internal systems that n8n orchestrates. Workflows can be altered or stopped. The issue is not in CISA KEV, is not tied to ransomware, and has no reported in-the-wild use 28 days after publication, but CVSS 8.8 RCE on a typically network-reachable automation platform still warrants prompt patching—especially for multi-user or internet-facing instances.
How an attack unfolds
An attacker who can create or edit workflow expressions on a vulnerable n8n instance that still uses the legacy expression engine supplies an expression that overwrites JSON.stringify. When the platform later generates expression source, the poisoned function causes attacker-controlled code to be written into that source and executed with the privileges of the n8n process. The attacker can then harvest stored credentials and abuse connected integrations. Instances using the vm expression engine are not vulnerable on this path. No public exploit or named threat-actor use is reported.
How to fix it
Upgrade n8n to 1.123.76 (1.x line), 2.37.7, or 2.38.2 or later. If upgrade is delayed, restrict expression authoring to trusted users, prefer the vm expression engine over the legacy engine, and limit exposure of the n8n UI and API. Rotate credentials stored in n8n if untrusted users could have authored expressions before the patch.
How to confirm the fix worked
Confirm the running version is 1.123.76, 2.37.7, 2.38.2, or later via application version metadata. Inventory remaining 1.x/2.x hosts below those builds. Verify instances are not still on the unpatched legacy expression engine. Review saved workflow expressions for global function mutation (including JSON.stringify). After patching, re-run representative workflows to confirm expressions still compile on the fixed code-generation path.
Typical attack path
- Authenticate with an account that can create or edit workflows or expressions
- Confirm the instance uses the unpatched legacy expression engine rather than the vm engine
- Submit an expression that replaces the global JSON.stringify used during code generation
- Trigger compilation or evaluation so later generated source includes attacker-controlled code
- Run code in the n8n process and abuse stored credentials and connected systems
How to detect it
No public exploit or named actor activity is reported 28 days after publication. Hunt workflow create/update events by lower-privileged users, expression fields that reassign or wrap JSON.stringify, unexpected child processes or outbound connections from the n8n Node.js process, and unusual use of stored credentials shortly after expression edits. Use n8n audit/application logs, reverse-proxy logs to the UI/API, and host/EDR telemetry around workflow save and execution times.
What your security team should do
- Patch all n8n instances to 1.123.76, 2.37.7, or 2.38.2 without delay
- Inventory deployments and flag any still using the legacy expression engine
- Until patched, restrict workflow and expression editing to trusted operators
- Reduce internet exposure of n8n management interfaces
- If untrusted users could edit expressions, review audit history and rotate secrets stored in n8n
- Hunt for suspicious expression content and unexpected child processes or outbound connections from the n8n process
The record
n8n is an open source workflow automation platform. Prior to 1.123.76, 2.37.7, and 2.38.2, the legacy expression engine generated source text by calling the mutable global JSON.stringify while printing synthetic string literals and interpolating timezone data. An expression could replace JSON.stringify and cause later generated source to contain executable attacker-controlled code. The affected code-generation paths include packages/@n8n/expression-runtime/src/bridge/isolated-vm-bridge.ts and packages/@n8n/tournament/src/ExpressionBuilder.ts, and the issue does not affect the vm expression engine. This issue is fixed in versions 1.123.76, 2.37.7 and 2.38.2.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-114125 Storybook is a frontend workshop for building user interface components and pages in… CWE-94
- CVE-2026-113776 virtualenv is a tool for creating isolated virtual python environments. CWE-94
- CVE-2026-112100 A vulnerability was determined in DeepPavlov up to 1.7.0. CWE-94
- CVE-2026-112095 A flaw has been found in SourceCodester Inventory System 1.0. CWE-94
- CVE-2026-112042 A security flaw has been discovered in diem-project diem up to… CWE-94
- CVE-2026-112038 A vulnerability has been found in diem-project diem up to… CWE-94
- CVE-2026-111991 A security vulnerability has been detected in WongKinYiu yolov9 0.1. CWE-94
- CVE-2026-111986 A vulnerability was determined in AUTOMATIC1111 stable-diffusion-webui up to 1.10.1. CWE-94