{"id":"GHSA-hw8v-xxg5-vvvx","summary":"n8n: Expression Sandbox Escape via Class-Field Sanitizer Rebinding Can Lead to Code Execution","details":"## Impact\n\nThe expression compiler's sanitizer resolved through a dynamically-scoped `this`, so a class field named `__sanitize` rebound it and reached the `Function` constructor. On the backend, any expression author could run code in the n8n process; in the editor preview, a member's expression could run as JavaScript in the session of whoever opened the workflow. The patch rejects reserved class-member names.\n\n## Patches\n\nThe issue has been fixed in n8n versions 1.123.76, 2.37.7, and 2.38.2. Users should upgrade to one of these versions or later to remediate the vulnerability.\n\n## Workarounds\n\nIf upgrading is not immediately possible, administrators should consider the following temporary mitigations:\n- Restrict n8n instance access to fully trusted users only.\n- Avoid granting workflow-create or workflow-edit permissions to untrusted users.\n- Audit existing workflows for unexpected or unfamiliar expressions in node parameters.\n- Set `N8N_EXPRESSION_ENGINE=vm`.\n\nThese workarounds do not fully remediate the risk and should only be used as short-term mitigation measures.","aliases":["CVE-2026-86076"],"modified":"2026-09-10T15:15:05.012966204Z","published":"2026-09-10T15:11:07Z","database_specific":{"nvd_published_at":"2026-09-08T22:19:16Z","cwe_ids":["CWE-94"],"severity":"HIGH","github_reviewed":true,"github_reviewed_at":"2026-09-10T15:11:07Z"},"references":[{"type":"WEB","url":"https://github.com/n8n-io/n8n/security/advisories/GHSA-hw8v-xxg5-vvvx"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-86076"},{"type":"PACKAGE","url":"https://github.com/n8n-io/n8n"},{"type":"WEB","url":"https://github.com/n8n-io/n8n/releases/tag/n8n@1.123.76"},{"type":"WEB","url":"https://github.com/n8n-io/n8n/releases/tag/n8n@2.37.7"},{"type":"WEB","url":"https://github.com/n8n-io/n8n/releases/tag/n8n@2.38.2"}],"affected":[{"package":{"name":"n8n","ecosystem":"npm","purl":"pkg:npm/n8n"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.123.76"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-hw8v-xxg5-vvvx/GHSA-hw8v-xxg5-vvvx.json"}},{"package":{"name":"n8n","ecosystem":"npm","purl":"pkg:npm/n8n"},"ranges":[{"type":"SEMVER","events":[{"introduced":"2.38.0"},{"fixed":"2.38.2"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-hw8v-xxg5-vvvx/GHSA-hw8v-xxg5-vvvx.json"}},{"package":{"name":"n8n","ecosystem":"npm","purl":"pkg:npm/n8n"},"ranges":[{"type":"SEMVER","events":[{"introduced":"2.0.0"},{"fixed":"2.37.7"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-hw8v-xxg5-vvvx/GHSA-hw8v-xxg5-vvvx.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:N/SA:N"}]}