GHSA-j4p8-h8mh-rh8q CVE-2025-68697
Self-hosted n8n has Legacy Code node that enables arbitrary file read/write
- Severity
- 7.1 / 10
- Medium · CVSS 3.1
- Exploit chance (EPSS)
- 0.27%
- Chance of exploitation in the next 30 days. Higher than 18.49% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Fix
2.0.0- Upgrade n8n to this version or later
Description
Impact
In self-hosted n8n instances where the Code node runs in legacy (non-task-runner) JavaScript execution mode, authenticated users with workflow editing access can invoke internal helper functions from within the Code node.
This allows a workflow editor to perform actions on the n8n host with the same privileges as the n8n process, including:
- Reading files from the host filesystem (subject to any file-access restrictions configured on the instance and OS/container permissions)
- Writing files to the host filesystem (subject to the same restrictions)
Starting with n8n version 1.2.1, access to files in the n8n home directory (.n8n) is blocked by default. However, this does not restrict access to other parts of the filesystem unless additional file access limitations are configured.
Patches
- Upgrade to n8n version 2.0.0 or later, where task runners are enabled by default for Code node execution.
- On n8n version 1.71.0 and above, enable task runners by setting
N8N_RUNNERS_ENABLED=true.
Workarounds
If you cannot immediately migrate to task runners:
- Limit file operations by setting
N8N_RESTRICT_FILE_ACCESS_TOto a dedicated directory (e.g.,~/.n8n-files) and ensure it contains no sensitive data. - Keep
N8N_BLOCK_FILE_ACCESS_TO_N8N_FILES=true(default) to block access to.n8nand user-defined config files. - If workflow editors are not fully trusted, consider disabling high-risk nodes (including the Code node) using
NODES_EXCLUDE.
Resources
- n8n Docs: Task runners
- n8n Docs: Task runner environment variables
- n8n Docs: Security environment variables
- n8n Docs: v2.0 breaking changes
Affected versions
npm
| Package | Vulnerable | Fixed in |
|---|---|---|
| n8n | >= 1.2.1, < 2.0.0 |
2.0.0 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
n8n npm → 2.0.0
- npm
npm install n8n@2.0.0- yarn
yarn add n8n@2.0.0- pnpm
pnpm add n8n@2.0.0
Severity breakdown
CVSS 3.1 7.1
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N
- Attack vector
- Network
- Attack complexity
- Low
- Privileges required
- Low
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- Low
- Integrity
- High
- Availability
- None
Weakness
CWE-269: Improper Privilege Management
The product does not properly assign, modify, track, or check privileges for an actor, creating an unintended sphere of control for that actor.
How to prevent it
- Architecture and Design, Operation: Very carefully manage the setting, management, and handling of privileges. Explicitly manage trust zones in the software.
- Architecture and Design: Follow the principle of least privilege when assigning access rights to entities in a software system.
- Architecture and Design: Consider following the principle of separation of privilege. Require multiple conditions to be met before permitting access to a system resource.
CWE-749: Exposed Dangerous Method or Function
The product provides an Applications Programming Interface (API) or similar interface for interaction with external actors, but the interface includes a dangerous method or function that is not properly restricted.
How to prevent it
- Architecture and Design: If you must expose a method, make sure to perform input validation on all arguments, limit access to authorized parties, and protect against all possible vulnerabilities.
- Architecture and Design, Implementation: Identify all exposed functionality. Explicitly list all functionality that must be exposed to some user or set of users. Identify which functionality may be: accessible to all users restricted to a small set of privileged users prevented from being directly accessible at all Ensure that the implemented code follows these expectations. This includes setting the appropriate access modifiers where applicable (public, private, protected, etc.) or not marking ActiveX controls safe-for-scripting.
References
Advisories
Packages
Other links
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-v98v-ff95-f3cp n8n Vulnerable to Remote Code Execution via Expression Injection | High Known exploited | Also affects n8n |
| GHSA-qgpw-8g46-w95v n8n: Git Node branch.<name>.remote Config Key Bypasses Sandbox Path Restriction, Enabling Local Git Repository Read | Medium | Also affects n8n |
| GHSA-65xw-2v52-jhxc n8n: Cross-User Active Workflow ID and Lifecycle Event Disclosure via Missing userId Filter | Medium | Also affects n8n |
| GHSA-pq6c-vh67-xpm3 n8n: Log Streaming Event Destinations Decrypt Generic-Auth Credentials Without Ownership Check | Medium | Also affects n8n |
| GHSA-cqr2-h44g-v75v n8n: Cross-Tenant Project-Member PII Disclosure via Missing Per-Project Scope Check on Role Assignment Endpoints | Medium | Also affects n8n |
| GHSA-pf83-w3f9-8m37 n8n: Disabled OIDC SSO Endpoints Remain Active and Issue Valid Sessions | Medium | Also affects n8n |
| GHSA-6xcw-7xm6-48c6 n8n: Expression Sandbox Escape via Shared Builtin Tampering and Code-Printer Injection Leads to Code Execution | High | Also affects n8n |
| GHSA-34ff-336r-5q23 n8n: Domain-Restriction Bypass via Unguarded Model-Search Endpoint in OpenAI Chat Model Node | Medium | Also affects n8n |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor