n8n: Shared-Workflow Editor Can Exfiltrate Credentials via Inline Sub-Workflow JSON
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- —
- Fix status
- Fixed
No CVSS vector from any source. Fix status from GitHub. Impact type from CWE-863.
Summary
## Impact n8n's credential-access checks validated only a node's top-level credentials, not credentials referenced inside an Execute Sub-workflow node's inline workflow JSON. A member with editor access to a shared workflow could reference a credential they were not permitted to use inside that inline JSON; it passed both save-time and runtime validation and resolved in the parent workflow's project context, letting the member use or exfiltrate a credential they could not otherwise access. Exploitation requires workflow sharing to be enabled and the attacker to have been explicitly granted Editor access to a shared workflow. The attacker must also know the target credential's ID. ## 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 workflow sharing to fully trusted users only, and avoid granting Editor access to untrusted members on workflows that use sensitive credentials. - Audit shared workflows for Execute Sub-workflow nodes with Source = "Parameter" and review their inline workflow definitions for unexpected credential references. - Restrict network egress from the n8n instance to prevent connections to attacker-controlled endpoints. These workarounds do not fully remediate the risk and should only be used as short-term mitigation measures.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | n8n (npm) | before 1.123.67 | 1.123.67 | Patch available | GHSA-cj9h-qx8g-pq2g |
| — | n8n (npm) | 2.32.0 to before 2.32.1 | 2.32.1 | Patch available | GHSA-cj9h-qx8g-pq2g |
| — | n8n (npm) | 2.0.0-rc.0 to before 2.31.5 | 2.31.5 | Patch available | GHSA-cj9h-qx8g-pq2g |
- n8n (npm) Vendor— Affected before 1.123.67 Fixed in 1.123.67 Patch available GHSA-cj9h-qx8g-pq2g
- n8n (npm) Vendor— Affected 2.32.0 to before 2.32.1 Fixed in 2.32.1 Patch available GHSA-cj9h-qx8g-pq2g
- n8n (npm) Vendor— Affected 2.0.0-rc.0 to before 2.31.5 Fixed in 2.31.5 Patch available GHSA-cj9h-qx8g-pq2g
Remediation
- Fix · GHSA-cj9h-qx8g-pq2g n8n (npm) Fixed in 1.123.67 Advisory →
- Fix · GHSA-cj9h-qx8g-pq2g n8n (npm) Fixed in 2.32.1 Advisory →
- Fix · GHSA-cj9h-qx8g-pq2g n8n (npm) Fixed in 2.31.5 Advisory →
Timeline
- 2026-10-03 Threatist record created from GHSA-cj9h-qx8g-pq2g
References
Other 6
- https://github.com/n8n-io/n8n/security/advisories/GHSA-cj9h-qx8g-pq2g
- https://github.com/n8n-io/n8n/commit/f69dfc6dd2178a14ea1624d2e1d403c2e755042f
- https://github.com/n8n-io/n8n
- 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]
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences