CVE-2026-73419
MediumCVSS 6.8Exploitation Probability (EPSS)
Low risk9th percentile - higher than 9% of all known CVEs
Summary
NextAuth.js before @auth/core 0.41.3, next-auth 4.24.15, and 5.0.0-beta.32 stores OAuth/OIDC anti-CSRF state, nonce, and PKCE verifier in global cookies not bound to the provider. An attacker can exploit this to link their account to a victim's account in multi-provider apps with account linking.
Risk Assessment
Risk of persistent account takeover, allowing the attacker unauthorized access to the victim's resources.
Recommendation
Update @auth/core to 0.41.3 or later, and next-auth to 4.24.15 or 5.0.0-beta.32 (or later).
Other vulnerabilities in NextAuth.js
See all- CVE-2026-73421Critical
NextAuth.js from 5.0.0-beta.0 until 5.0.0-beta.32 has a vulnerability where applications that gate access by checking only for the existence of the auth object can fail open when Auth.js has a server configuration error. A non-OK session response is parsed into a truthy error object instead of null, so checks such as !!auth evaluate to true for unauthenticated requests.
- CVE-2026-73420Critical
NextAuth.js prior to @auth/core 0.41.3 and next-auth 4.24.15 and 5.0.0-beta.32 has a vulnerability in the email normalizer, where an address with a fullwidth at-sign (U+FF20) passes validation but after Unicode normalization becomes a standard @, potentially causing the sign-in link to be delivered to an attacker.
- CVE-2026-73418High
NextAuth.js before @auth/core 0.41.3, next-auth 4.24.15, and 5.0.0-beta.32 can throw an uncaught exception in getToken() when reading a malformed Authorization: Bearer header. When no session cookie is present, getToken() URL-decodes the bearer value before validation, and malformed percent encoding causes decodeURIComponent() to throw. This can lead to per-request denial of service without exposing tokens or bypassing authentication.
Original NVD description (English source)
NextAuth.js provides authentication for Next.js. Prior to@auth/core 0.41.3 and next-auth 4.24.15 and 5.0.0-beta.32, 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, including the provider ID, issuer, client ID, or redirect URI. In a multi-provider application that permits account linking while logged in, when one provider's authorization request is observable and a target provider callback can be satisfied without a PKCE verifier, an attacker can lure a victim into starting a legitimate same-origin flow and link the attacker's target-provider account to the victim's Auth.js user. The linked provider grants the attacker persistent sign-in to the victim's account, while cross-site request forgery alone is insufficient. This issue is fixed in @auth/core 0.41.3 and next-auth 4.24.15 and 5.0.0-beta.32.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

