Summary
An authorization bypass in n8n allows editors of shared workflows to access credentials that should be restricted to other projects or users. The issue becomes risky when an Execute Sub-workflow node loads workflow content from a URL or local file and the resulting execution resolves protected credentials.
An authorization bypass in n8n allows editors of shared workflows to access credentials that should be restricted to other projects or users. The issue becomes risky when an Execute Sub-workflow node loads workflow content from a URL or local file and the resulting execution resolves protected credentials.
Affected context
The vulnerability affects n8n deployments where users with editor access to shared workflows can configure Execute Sub-workflow nodes to load workflow definitions from external URLs or local files. Risk depends on credential sharing rules, project boundaries, node permissions, and whether the loaded workflow can resolve credentials outside the editor's authorized scope.
The vulnerability affects n8n deployments where users with editor access to shared workflows can configure Execute Sub-workflow nodes to load workflow definitions from external URLs or local files. Risk depends on credential sharing rules, project boundaries, node permissions, and whether the loaded workflow can resolve credentials outside the editor's authorized scope.
Exploit preconditions
- Attack surface: Execute Sub-workflow node and its URL or local-file workflow sources
- Required access: Editor-level access to a shared workflow or equivalent workflow modification rights
- Trigger point: Execution of a sub-workflow whose content is loaded from a permitted URL or local file
- Why exploitation is possible: Credential authorization is not sufficiently enforced across the dynamically loaded workflow boundary, allowing restricted project credentials to be resolved and exposed
- Attack surface: Execute Sub-workflow node and its URL or local-file workflow sources
- Required access: Editor-level access to a shared workflow or equivalent workflow modification rights
- Trigger point: Execution of a sub-workflow whose content is loaded from a permitted URL or local file
- Why exploitation is possible: Credential authorization is not sufficiently enforced across the dynamically loaded workflow boundary, allowing restricted project credentials to be resolved and exposed
Why this happens
The underlying issue is an authorization enforcement gap in dynamically loaded sub-workflows. n8n permits workflow content supplied through URL or local-file sources to participate in credential resolution without consistently checking whether the requesting editor is authorized to use those credentials. This behavior maps to CWE-863, Incorrect Authorization, because access control is bypassed across a workflow or project boundary.
The underlying issue is an authorization enforcement gap in dynamically loaded sub-workflows. n8n permits workflow content supplied through URL or local-file sources to participate in credential resolution without consistently checking whether the requesting editor is authorized to use those credentials. This behavior maps to CWE-863, Incorrect Authorization, because access control is bypassed across a workflow or project boundary.
Potential impact
- An attacker may obtain decrypted values for restricted credentials.
- Compromised credentials could provide access to connected services and data.
- Attackers could perform actions with the privileges of the exposed integrations.
- Organizations could experience data disclosure, workflow tampering, or lateral movement.
- An attacker may obtain decrypted values for restricted credentials.
- Compromised credentials could provide access to connected services and data.
- Attackers could perform actions with the privileges of the exposed integrations.
- Organizations could experience data disclosure, workflow tampering, or lateral movement.
General mitigation guidance
Mitigation generally focuses on enforcing authorization at every workflow and
credential resolution boundary.
Common defensive patterns include:
- Revalidating credential ownership and project authorization when loading sub-workflows dynamically.
- Applying least-privilege permissions to workflow editors and shared projects.
- Restricting or disabling URL and local-file workflow sources where they are not required.
- Avoiding disclosure of decrypted credential material to workflow authors or execution results.
- Enforcing allowlists, integrity checks, and controlled storage for dynamically loaded workflow content.
- Monitoring and reviewing credential-sharing policies for shared workflows.
Mitigation generally focuses on enforcing authorization at every workflow and
credential resolution boundary.
Common defensive patterns include:
- Revalidating credential ownership and project authorization when loading sub-workflows dynamically.
- Applying least-privilege permissions to workflow editors and shared projects.
- Restricting or disabling URL and local-file workflow sources where they are not required.
- Avoiding disclosure of decrypted credential material to workflow authors or execution results.
- Enforcing allowlists, integrity checks, and controlled storage for dynamically loaded workflow content.
- Monitoring and reviewing credential-sharing policies for shared workflows.
How teams detect issues like this
Organizations can identify similar authorization flaws through:
- Static analysis and code review for credential lookups that occur without an explicit user, project, or workflow authorization check.
- Review of dynamic workflow-loading paths, especially URL and local-file sources.
- Tests that attempt cross-project credential resolution using editor-level permissions.
- Audit logging and alerting for unusual sub-workflow sources or access to credentials outside the caller's project.
- Policy enforcement that restricts dynamic workflow sources and shared-workflow editing.
- Automated security review tools can help flag missing authorization checks and inconsistent permission enforcement.
Organizations can identify similar authorization flaws through:
- Static analysis and code review for credential lookups that occur without an explicit user, project, or workflow authorization check.
- Review of dynamic workflow-loading paths, especially URL and local-file sources.
- Tests that attempt cross-project credential resolution using editor-level permissions.
- Audit logging and alerting for unusual sub-workflow sources or access to credentials outside the caller's project.
- Policy enforcement that restricts dynamic workflow sources and shared-workflow editing.
- Automated security review tools can help flag missing authorization checks and inconsistent permission enforcement.

