GHSA-x445-f3h2-j279: Auth.js: OAuth state, nonce, and PKCE check cookies are not bound to the provider that created them
Auth.js stores the OAuth/OIDC anti-CSRF checks (state, nonce, and the PKCE verifier) in global cookies that are not bound to the provider that created them. On callback, a check value minted during a sign-in started with one provider can satisfy the callback for a different provider, because the stored cookie is not verified against the callback provider’s identity (provider id, issuer, client id, or redirect URI). In a multi-provider app that allows account linking while logged in, this provider-confusion / mix-up condition can let an attacker link their account at a second provider to a victim’s user.
References
- github.com/advisories/GHSA-x445-f3h2-j279
- github.com/nextauthjs/next-auth/commit/5bca2399a79ba8d116ca5179b4b1ebcd152e7f05
- github.com/nextauthjs/next-auth/commit/9f7a97fade9b1319bb9ac19fc9828d62e0a2a852
- github.com/nextauthjs/next-auth/pull/13469
- github.com/nextauthjs/next-auth/releases/tag/@auth/core@0.41.3
- github.com/nextauthjs/next-auth/releases/tag/next-auth@4.24.15
- github.com/nextauthjs/next-auth/releases/tag/next-auth@5.0.0-beta.32
- github.com/nextauthjs/next-auth/security/advisories/GHSA-x445-f3h2-j279
Code Behaviors & Features
Detect and mitigate GHSA-x445-f3h2-j279 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 →