GHSA-6qc9-mqvw-jg7x: n8n: Credential Authorization Bypass via Expression in HTTP Request Node `genericAuthType`
In n8n, a member with edit access to a shared workflow could use another user's credential in an HTTP Request node by setting the credential type through an expression in genericAuthType. The permission check skipped the ownership test. The attacker must know the credential's ID. Fixed in n8n 1.123.67, 2.31.5 and 2.32.1.
Published Jul 22, 2026 · Analysis Oct 25, 2026
What an attacker can do
n8n checks before execution that a workflow's author may use each credential it references. For the HTTP Request node, the credential type can be given in genericAuthType. If that value is an expression, the check compared the unresolved expression text, not the real credential type. The ownership check was skipped (CWE-863, incorrect authorization). At execution time the expression resolved and the credential was loaded anyway.
The attacker is an authenticated member who can edit a shared workflow. They also need the target credential's identifier, which the advisory says is required. With both, they can make the node send requests authenticated with a credential nobody granted them, or send it to a server they control and so exfiltrate the secret.
The CVSS 4.0 vector shows low privileges, no user interaction, high confidentiality impact, and high impact on subsequent systems. That fits the real risk: credentials commonly unlock other services such as cloud APIs, databases and SaaS accounts. Exposed credential IDs are the limiting factor, and they show up in shared workflows and exports.
Who is affected
Affected: n8n below 1.123.67 on the 1.x line, 2.0.0-rc.0 up to but not including 2.31.5, and 2.32.0. Instances with several users who share workflows are the exposed ones. A single-user instance has no other users' credentials to take.
Check the version:
npm ls n8nFor Docker, check the image tag or the version in the UI.
n8n
- Ecosystem
- npm
- Affected
- < 1.123.67
- Fixed in
- 1.123.67
- Check
npm ls n8n
n8n
- Ecosystem
- npm
- Affected
- >= 2.32.0, < 2.32.1
- Fixed in
- 2.32.1
- Check
npm ls n8n
n8n
- Ecosystem
- npm
- Affected
- >= 2.0.0-rc.0, < 2.31.5
- Fixed in
- 2.31.5
- Check
npm ls n8n
How to fix it
Upgrade to n8n 1.123.67, 2.31.5 or 2.32.1, or later. For an npm install, run npm install [email protected].
Temporary mitigations from the advisory, none of which fully remove the risk:
- Restrict instance access to fully trusted users.
- Add
n8n-nodes-base.httpRequesttoNODES_EXCLUDEif you do not need the HTTP Request node. - Audit credential sharing and workflow access to limit who can see credential IDs.
After upgrading, rotate credentials that untrusted members could have reached.
How to tell if you were hit
Search workflows for HTTP Request nodes where genericAuthType holds an expression, such as one starting with ={{, rather than a fixed type. Compare each such node's credential reference with the workflow owner's own credentials. Flag any workflow that references a credential ID owned by someone else. Check the target service's logs for requests made with the credential from n8n workflows you do not recognise.
Original advisory
From the GitHub Advisory Database (CC BY 4.0).
Impact
An authenticated member with edit access to a shared workflow could reference another user's credential in an HTTP Request node while specifying the credential type through an expression. Because the pre-execution permission check compared the unresolved expression instead of the real credential type, the ownership check was skipped and the credential was loaded at execution time, letting the member use or exfiltrate a credential they were never granted. Exploitation required knowing the target credential's identifier.
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.
- Exclude the HTTP Request node by adding
n8n-nodes-base.httpRequestto theNODES_EXCLUDEenvironment variable, if the node is not required. - Audit credential sharing and workflow access to limit exposure of credential IDs to untrusted users.
These workarounds do not fully remediate the risk and should only be used as short-term mitigation measures.
Credited to g4nkd.
Questions
- What does an attacker need to exploit GHSA-6qc9-mqvw-jg7x?
An authenticated member account with edit access to a shared workflow, plus the identifier of the target credential. No user interaction is needed.
- Why did the permission check fail?
It compared the unresolved expression in genericAuthType, not the credential type the expression resolves to. The ownership check was skipped, and the credential loaded at execution time.
- Can I work around it without upgrading?
Partly. Adding n8n-nodes-base.httpRequest to NODES_EXCLUDE removes the node, if you can live without it. The advisory says workarounds do not fully remediate the risk.
- Is it exploited in the wild?
The sources do not say so, and the entry is not in CISA's KEV catalog.
References
Read for this analysis:
- https://github.com/n8n-io/n8n/commit/f69dfc6dd2178a14ea1624d2e1d403c2e755042f
- 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://github.com/advisories/GHSA-6qc9-mqvw-jg7x
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
