{"id":"CVE-2026-56352","aliases":["EUVD-2026-44625","GHSA-2vx9-7wpg-88jq","GHSA-w243-4jxf-88rr","ROOT-APP-NPM-GHSA-2vx9-7wpg-88jq"],"status":"published","title":"n8n - Arbitrary File Read and Execution via ExecuteWorkflow localFile Parameter","description":"n8n before 2.19.3 contains a file path restriction bypass in the legacy ExecuteWorkflow node's localFile source option, which reads workflow files from disk without the file-access checks enforced by other file-reading nodes. Although hidden from the UI since v1.2, it remains reachable via the REST API. An authenticated user with permission to create or modify workflows can supply an arbitrary file path to bypass the N8N_RESTRICT_FILE_ACCESS_TO restriction and determine whether arbitrary files exist on the host; where the targeted path contains a valid workflow JSON file, that file can additionally be loaded and executed.","severity":{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00328,"percentile":0.26239,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-22"],"published":"2026-05-19T15:55:43Z","modified":"2026-11-02T02:46:28Z","fixes":[{"ecosystem":"npm","package":"n8n","fixed_in":["2.19.3"],"sources":["ghsa","osv"]},{"ecosystem":"Root:npm","package":"n8n","fixed_in":["2.19.3-aikido.7","2.19.3-aikido.1","2.19.3-aikido.2","2.19.3-aikido.3","2.19.3-aikido.4","2.19.3-aikido.5","2.19.3-aikido.6","2.19.3-aikido.8","2.19.3-aikido.9","2.19.3-aikido.10","2.19.3-aikido.11","2.19.3-aikido.12","2.19.3-aikido.13","2.19.3-aikido.14","2.19.3-aikido.15"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/n8n","fixed_in":["2.19.3-root.io.7","2.19.3-root.io.1","2.19.3-root.io.2","2.19.3-root.io.3","2.19.3-root.io.4","2.19.3-root.io.5","2.19.3-root.io.6","2.19.3-root.io.8","2.19.3-root.io.9","2.19.3-root.io.10","2.19.3-root.io.11","2.19.3-root.io.12","2.19.3-root.io.13","2.19.3-root.io.14","2.19.3-root.io.15"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"n8n","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.19.3"}]}]},{"source":"osv","ecosystem":"npm","package":"n8n","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"2.19.3"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"n8n","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.19.3-aikido.7"},{"fixed":"2.19.3-aikido.1"},{"fixed":"2.19.3-aikido.2"},{"fixed":"2.19.3-aikido.3"},{"fixed":"2.19.3-aikido.4"},{"fixed":"2.19.3-aikido.5"},{"fixed":"2.19.3-aikido.6"},{"fixed":"2.19.3-aikido.8"},{"fixed":"2.19.3-aikido.9"},{"fixed":"2.19.3-aikido.10"},{"fixed":"2.19.3-aikido.11"},{"fixed":"2.19.3-aikido.12"},{"fixed":"2.19.3-aikido.13"},{"fixed":"2.19.3-aikido.14"},{"fixed":"2.19.3-aikido.15"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/n8n","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.19.3-root.io.7"},{"fixed":"2.19.3-root.io.1"},{"fixed":"2.19.3-root.io.2"},{"fixed":"2.19.3-root.io.3"},{"fixed":"2.19.3-root.io.4"},{"fixed":"2.19.3-root.io.5"},{"fixed":"2.19.3-root.io.6"},{"fixed":"2.19.3-root.io.8"},{"fixed":"2.19.3-root.io.9"},{"fixed":"2.19.3-root.io.10"},{"fixed":"2.19.3-root.io.11"},{"fixed":"2.19.3-root.io.12"},{"fixed":"2.19.3-root.io.13"},{"fixed":"2.19.3-root.io.14"},{"fixed":"2.19.3-root.io.15"}]}]}],"products":[{"vendor":"n8n","product":"n8n"},{"vendor":"n8n-io","product":"n8n"}],"references":[{"url":"https://github.com/n8n-io/n8n/security/advisories/GHSA-2vx9-7wpg-88jq","tags":["vendor-advisory","advisory","web"]},{"url":"https://www.vulncheck.com/advisories/n8n-arbitrary-file-read-and-execution-via-executeworkflow-localfile-parameter","tags":["third-party-advisory","advisory"]},{"url":"https://github.com/advisories/GHSA-2vx9-7wpg-88jq"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-56352","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-w243-4jxf-88rr"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/56xxx/CVE-2026-56352.json","tags":["advisory"]},{"url":"https://github.com/n8n-io/n8n","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-56352","title":"n8n - Arbitrary File Read and Execution via ExecuteWorkflow localFile Parameter","description":"n8n before 2.19.3 contains a file path restriction bypass in the legacy ExecuteWorkflow node's localFile source option, which reads workflow files from disk without the file-access checks enforced by other file-reading nodes. Although hidden from the UI since v1.2, it remains reachable via the REST API. An authenticated user with permission to create or modify workflows can supply an arbitrary file path to bypass the N8N_RESTRICT_FILE_ACCESS_TO restriction and determine whether arbitrary files exist on the host; where the targeted path contains a valid workflow JSON file, that file can additionally be loaded and executed.","status":"published","published":"2026-07-15T11:25:28.663Z","modified":"2026-07-15T13:49:30.931Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N","level":"medium","assessor":"cna"},{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T13:36:51.6229Z"}],"euvd":[{"id":"EUVD-2026-44625","description":"n8n before 2.19.3 contains a file path restriction bypass in the legacy ExecuteWorkflow node's localFile source option, which reads workflow files from disk without the file-access checks enforced by other file-reading nodes. Although hidden from the UI since v1.2, it remains reachable via the REST API. An authenticated user with permission to create or modify workflows can supply an arbitrary file path to bypass the N8N_RESTRICT_FILE_ACCESS_TO restriction and determine whether arbitrary files exist on the host; where the targeted path contains a valid workflow JSON file, that file can additionally be loaded and executed.","status":"published","published":"2026-07-15T11:25:28Z","modified":"2026-07-15T13:49:30Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N","level":"medium"}],"updated_at":"2026-11-02T18:19:53.226345Z"}],"ghsa":[{"id":"GHSA-2vx9-7wpg-88jq","title":"n8n: Legacy ExecuteWorkflow Node Bypassed File Path Restrictions","description":"## Impact\nThe `ExecuteWorkflow` node's `localFile` source option read workflow files from disk without applying checks enforced by other file-reading nodes. An authenticated user with permission to create or modify workflows could supply an arbitrary file path via the REST API, bypassing the `N8N_RESTRICT_FILE_ACCESS_TO` restriction. This allowed the attacker to determine whether arbitrary files exist on the server host. Where the targeted path contained a valid workflow JSON file, the file could additionally be loaded and executed, potentially triggering actions on downstream systems connected to that workflow.\n\nThe `localFile` source option is hidden from the n8n UI since v1.2 but remains accessible via the REST API.\n\n## Patches\nThe issue has been fixed in n8n version 2.20.0 or 2.19.3. Users should upgrade to this version or later to remediate the vulnerability.\n\n## Workarounds\nIf upgrading is not immediately possible, administrators should consider the following temporary mitigations:\n- Restrict workflow creation and editing permissions to fully trusted users only.\n- Restrict network access to the n8n REST API to trusted users only.\n\nThese workarounds do not fully remediate the risk and should only be used as short-term mitigation measures.","status":"published","published":"2026-05-19T15:55:43Z","modified":"2026-05-19T15:55:44Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N","level":"medium"},{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:40:12.430932Z"},{"id":"GHSA-w243-4jxf-88rr","title":"n8n before 2.19.3 contains a file path restriction bypass in the legacy ExecuteWorkflow node's...","description":"n8n before 2.19.3 contains a file path restriction bypass in the legacy ExecuteWorkflow node's localFile source option, which reads workflow files from disk without the file-access checks enforced by other file-reading nodes. Although hidden from the UI since v1.2, it remains reachable via the REST API. An authenticated user with permission to create or modify workflows can supply an arbitrary file path to bypass the N8N_RESTRICT_FILE_ACCESS_TO restriction and determine whether arbitrary files exist on the host; where the targeted path contains a valid workflow JSON file, that file can additionally be loaded and executed.","status":"published","published":"2026-07-15T12:32:02Z","modified":"2026-07-15T12:32:02Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"medium"},{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:09:32.601666Z"}],"nvd":[{"id":"CVE-2026-56352","description":"n8n before 2.19.3 contains a file path restriction bypass in the legacy ExecuteWorkflow node's localFile source option, which reads workflow files from disk without the file-access checks enforced by other file-reading nodes. Although hidden from the UI since v1.2, it remains reachable via the REST API. An authenticated user with permission to create or modify workflows can supply an arbitrary file path to bypass the N8N_RESTRICT_FILE_ACCESS_TO restriction and determine whether arbitrary files exist on the host; where the targeted path contains a valid workflow JSON file, that file can additionally be loaded and executed.","status":"published","published":"2026-07-15T12:18:02.433Z","modified":"2026-07-15T18:20:21.237Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"medium","assessor":"secondary"},{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:12:29.879716Z"}],"osv":[{"id":"CVE-2026-56352","title":"n8n - Arbitrary File Read and Execution via ExecuteWorkflow localFile Parameter","description":"n8n before 2.19.3 contains a file path restriction bypass in the legacy ExecuteWorkflow node's localFile source option, which reads workflow files from disk without the file-access checks enforced by other file-reading nodes. Although hidden from the UI since v1.2, it remains reachable via the REST API. An authenticated user with permission to create or modify workflows can supply an arbitrary file path to bypass the N8N_RESTRICT_FILE_ACCESS_TO restriction and determine whether arbitrary files exist on the host; where the targeted path contains a valid workflow JSON file, that file can additionally be loaded and executed.","status":"published","published":"2026-07-15T11:25:28.663Z","modified":"2026-11-02T02:46:28.481823646Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N","level":"medium"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:45:11.609219Z"},{"id":"GHSA-2vx9-7wpg-88jq","title":"n8n: Legacy ExecuteWorkflow Node Bypassed File Path Restrictions","description":"## Impact\nThe `ExecuteWorkflow` node's `localFile` source option read workflow files from disk without applying checks enforced by other file-reading nodes. An authenticated user with permission to create or modify workflows could supply an arbitrary file path via the REST API, bypassing the `N8N_RESTRICT_FILE_ACCESS_TO` restriction. This allowed the attacker to determine whether arbitrary files exist on the server host. Where the targeted path contained a valid workflow JSON file, the file could additionally be loaded and executed, potentially triggering actions on downstream systems connected to that workflow.\n\nThe `localFile` source option is hidden from the n8n UI since v1.2 but remains accessible via the REST API.\n\n## Patches\nThe issue has been fixed in n8n version 2.20.0 or 2.19.3. Users should upgrade to this version or later to remediate the vulnerability.\n\n## Workarounds\nIf upgrading is not immediately possible, administrators should consider the following temporary mitigations:\n- Restrict workflow creation and editing permissions to fully trusted users only.\n- Restrict network access to the n8n REST API to trusted users only.\n\nThese workarounds do not fully remediate the risk and should only be used as short-term mitigation measures.","status":"published","published":"2026-05-19T15:55:43Z","modified":"2026-07-16T03:56:43.129824446Z","cvss":[{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium"},{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N","level":"medium"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:46:34.700741Z"},{"id":"ROOT-APP-NPM-GHSA-2vx9-7wpg-88jq","title":"GHSA-2vx9-7wpg-88jq in n8n - Patched by Root","description":"Root has patched GHSA-2vx9-7wpg-88jq in the n8n package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-10-06T03:42:47Z","modified":"2026-10-06T04:15:04.144278389Z","updated_at":"2026-11-02T15:53:27.940619Z"}]}}
