Cloudanix VulnDB

CVE-2026-86083

High · 8.8

CVSS

8.8

EPSS

0.7%

Published

Sep 8, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

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

  1. Authenticate with an account that can create or edit workflows or expressions
  2. Confirm the instance uses the unpatched legacy expression engine rather than the vm engine
  3. Submit an expression that replaces the global JSON.stringify used during code generation
  4. Trigger compilation or evaluation so later generated source includes attacker-controlled code
  5. 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