CVE-2026-86073: n8n: Per-Resource OAuth Consent Bypass via Unbound Refresh Token Resource Substitution
The OAuth token endpoint bound an authorization code’s first access token to the consented resource, but not its refresh token. Refreshing only checked that the requested resource was registered, not that it matched the original grant. An OAuth client approved for one workflow could refresh with a different workflow’s URL and get a valid, unapproved token for it. The patch binds refresh tokens to the granted resource and rejects mismatches.
Exploitation requires the attacker to register an OAuth client, convince an authenticated user to approve that client for one known protected resource, and know the URL of a second protected resource that the consenting user is permitted to execute.
References
- github.com/advisories/GHSA-cw9w-vv67-hf73
- github.com/n8n-io/n8n/commit/18458482861097a26f874f30ad7e8136e268475c
- github.com/n8n-io/n8n/commit/380788fd9a3264c83161e868026a98731d274d88
- github.com/n8n-io/n8n/pull/37122
- github.com/n8n-io/n8n/pull/37588
- github.com/n8n-io/n8n/releases/tag/n8n@2.37.7
- github.com/n8n-io/n8n/releases/tag/n8n@2.38.1
- github.com/n8n-io/n8n/security/advisories/GHSA-cw9w-vv67-hf73
- nvd.nist.gov/vuln/detail/CVE-2026-86073
Code Behaviors & Features
Detect and mitigate CVE-2026-86073 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →