Summary
n8n: Prototype Pollution via VM Expression Engine Sandbox Escape Leads to Denial of Service
Advisory details
Impact
An authenticated user able to create or edit a workflow expression could abuse the expression engine's array-element access to obtain a reference to a host built-in and pollute its prototype in the main n8n process, leading to a denial of service.
Both self-hosted and cloud instances running the VM expression engine are affected.
Patches
The issue has been fixed in n8n versions 1.123.67, 2.31.5, and 2.32.1. Users should upgrade to one of these versions or later to remediate the vulnerability.
Workarounds
If upgrading is not immediately possible, administrators should consider the following temporary mitigations:
- Restrict n8n instance access to fully trusted users only.
- Disable the VM expression engine if an alternative is available for your deployment.
These workarounds do not fully remediate the risk and should only be used as short-term mitigation measures.
References
- https://github.com/advisories/GHSA-hx4h-vr3m-45vh
- https://github.com/n8n-io/n8n/security/advisories/GHSA-hx4h-vr3m-45vh
- https://github.com/n8n-io/n8n/commit/f69dfc6dd2178a14ea1624d2e1d403c2e755042f
- https://github.com/n8n-io/n8n/releases/tag/n8n@1.123.67
- https://github.com/n8n-io/n8n/releases/tag/n8n@2.31.5
- https://github.com/n8n-io/n8n/releases/tag/n8n@2.32.1
Related vulnerabilities
All Supply chain →- HIGHCVE-2026-63376
toml-node: Prototype Pollution Leads to `Object.prototype` Corruption via `__proto__` Key-Path Desynchronization
- HIGHCVE-2026-82404
TOON: Prototype pollution when decoding untrusted TOON input
- HIGHCVE-2026-71553
ApostropheCMS: 2nd-order prototype pollution via PATCH leading to single-request persistent DoS
- MEDIUMGHSA-cp6q-959q-f8rh
Tiptap: mergeAttributes() turns an own __proto__ key into inherited executable DOM attributes
- MEDIUMCVE-2026-81887
Livewire DOM-based cross-site scripting during client-side state handling
- HIGHCVE-2026-73088
Browserslist: Uncaught crash / prototype write via untrusted browserslist-stats.json custom stats (normalizeStats)