CVE-2026-59259: n8n: External Secrets Permission Bypass via Expression Parser Mismatch
n8n's static check for external secret references in credentials did not match how the runtime expression engine parses them. A user who can create or update credentials, but lacks the externalSecret:list scope, could embed references the check missed and read secret values at execution time. Needs an external secrets provider and Advanced Permissions. Fixed in n8n 1.123.61, 2.27.4 and 2.28.1.
Published Jul 22, 2026 · Analysis Oct 25, 2026
What an attacker can do
When a credential is saved, n8n validates whether it refers to external secrets, and only users with the externalSecret:list scope may do so. The validation and the runtime expression engine parse expressions differently (CWE-639, authorization bypass). A user can write a reference in a form the validator does not recognise but the runtime still resolves.
The reference resolves when a workflow using that credential runs. The secret value is then exposed to a user who was never authorized to see it, for example through a request the workflow sends to a server the attacker picks.
The attacker needs an account with credential create or update permission. The instance must have an external secrets provider configured and use Advanced Permissions, which is where the scope separation exists. The CVSS 4.0 vector lists low privileges and an attack requirement, with high confidentiality impact. Leaked values are typically keys and passwords held in a vault for other systems.
Who is affected
Affected: n8n below 1.123.61 on the 1.x line, 2.0.0-rc.0 up to but not including 2.27.4, and 2.28.0. Only instances with an external secrets provider configured and Advanced Permissions in use are exposed.
Check the version:
npm ls n8nFor Docker, check the image tag or the version in the UI.
n8n
- Ecosystem
- npm
- Affected
- < 1.123.61
- Fixed in
- 1.123.61
- Check
npm ls n8n
n8n
- Ecosystem
- npm
- Affected
- >= 2.28.0, < 2.28.1
- Fixed in
- 2.28.1
- Check
npm ls n8n
n8n
- Ecosystem
- npm
- Affected
- >= 2.0.0-rc.0, < 2.27.4
- Fixed in
- 2.27.4
- Check
npm ls n8n
How to fix it
Upgrade to n8n 1.123.61, 2.27.4 or 2.28.1, or later. For an npm install, run npm install [email protected].
Temporary mitigations from the advisory, neither of which fully removes the risk:
- Restrict credential creation and update permissions to fully trusted users.
- Audit existing credentials for unexpected external secret references.
If an untrusted user held credential write access on an unpatched version, rotate the external secrets they could have reached.
How to tell if you were hit
Audit existing credentials for external secret references that were added by users without the externalSecret:list scope. Check how fields are written, since the bypass relies on forms of reference that the validator does not detect. Review who created or updated each credential and when. Check the secrets provider's access logs for reads that do not match known credential use, and look at outbound requests from workflows that use the suspect credentials.
Original advisory
From the GitHub Advisory Database (CC BY 4.0).
Impact
Due to a mismatch between the static validation check and the runtime expression engine, an authenticated user with credential create or update permissions, but without the externalSecret:list scope, could embed external secret references into credentials in forms the validation did not detect. These references would resolve at workflow execution time, exposing secret values the user was not authorized to access.
This issue only affects instances where an external secrets provider is configured and Advanced Permissions are in use.
Patches
The issue has been fixed in n8n versions 1.123.61, 2.27.4, and 2.28.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 credential creation and update permissions to fully trusted users only.
- Audit existing credentials for unexpected external secret references.
These workarounds do not fully remediate the risk and should only be used as short-term mitigation measures.
Credited to YLChen-007.
Questions
- What permissions does an attacker need for CVE-2026-59259?
Credential create or update permission, without the externalSecret:list scope. The instance must also have an external secrets provider and Advanced Permissions.
- What is the root cause?
A mismatch between the static validation check and the runtime expression engine. References written in forms the check does not detect still resolve when a workflow runs.
- Which versions fix it?
n8n 1.123.61, 2.27.4 and 2.28.1, or later.
- Is it exploited in the wild?
The sources do not say so, and the entry is not in CISA's KEV catalog. EPSS is low at 0.0044.
References
Read for this analysis:
- https://nvd.nist.gov/vuln/detail/CVE-2026-59259
- https://github.com/n8n-io/n8n/releases/tag/[email protected]
- https://github.com/n8n-io/n8n/releases/tag/[email protected]
- https://github.com/n8n-io/n8n/releases/tag/[email protected]
- https://www.vulncheck.com/advisories/n8n-permission-bypass-via-expression-parser-mismatch-in-external-secrets
- https://github.com/advisories/GHSA-jp7m-xcgx-57qm
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. The analysis is written by an AI model from the sources listed above and checked by automated rules before it is published. Check versions against the vendor's advisory before you act. Methodology
More n8n vulnerabilities
All n8n entriesCVE-2026-86073
n8n: Per-Resource OAuth Consent Bypass via Unbound Refresh Token Resource Substitution
medium5.9Sep 10, 2026CVE-2026-86074
n8n: Instance AI Credential Setup Accepts Unvalidated Probe URL from Fetched Content
medium5.9Sep 10, 2026CVE-2026-86075
n8n: Unauthenticated Persistent Storage Exhaustion via OAuth Dynamic Client Registration Endpoint
high8.7Sep 10, 2026CVE-2026-86076
n8n: Expression Sandbox Escape via Class-Field Sanitizer Rebinding Can Lead to Code Execution
high8.7Sep 10, 2026CVE-2026-86077
n8n: Anonymous Approval-Gate Bypass via Reused resumeToken over the Chat WebSocket
medium6.3Sep 10, 2026CVE-2026-86078
n8n: Prototype Pollution via Workflow Structure Summary Can Lead to Denial of Service
medium6.0Sep 10, 2026
