Description
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.
Published: 2026-08-12
Score: 6.8 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

NextAuth.js uses OAuth and OIDC for authentication, but before specific releases the anti‑CSRF state, nonce, and PKCE verifier are stored in global cookies without binding them to the originating provider. This flaw allows a token generated for one identity provider to satisfy the callback of a different provider, effectively bypassing server‑side checks. An attacker can trick a user into initiating a legitimate sign‑in flow with one provider, then use the callback from another provider to link the attacker’s account to the victim’s Auth.js user. The linked account then grants the attacker persistent sign‑in, constituting a full account takeover. The weakness is a cross‑component trust flaw (CWE‑345/346) accompanied by improper secure cookie handling (CWE‑940).

Affected Systems

The vulnerability affects the @auth:core package and the next-auth package in versions prior to @auth/core 0.41.3, next-auth 4.24.15, and next-auth 5.0.0‑beta.32. Applications that enable multi‑provider sign‑in and permit account linking while a user is logged in are particularly susceptible.

Risk and Exploitability

The CVSS score of 6.8 indicates moderate severity. Because the attack requires a same‑origin flow that the application exposes, it is not a generic cross‑site request forgery but a crafted sign‑in operation, so the probability of exploitation is not reflected in EPSS data. The issue is not listed in the CISA KEV catalog, yet a successful exploitation results in persistent compromise of user accounts. The attacker must have the victim observe the authorization request for one provider and then trigger the callback for a different provider; no additional privileges on the client or server are necessary beyond those typical for a web user.

Generated by OpenCVE AI on August 12, 2026 at 22:11 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade @auth/core to 0.41.3 or later and next-auth to 4.24.15 or 5.0.0‑beta.32 or newer, which bind state, nonce, and PKCE cookies to their originating provider.
  • Configure the application to disallow account linking while a user is authenticated, or restrict linking to the same provider used for sign‑in.
  • Deploy monitoring and anomaly detection to flag unusual account linking attempts, and consider temporary lockout of newly linked accounts pending review.

Generated by OpenCVE AI on August 12, 2026 at 22:11 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-x445-f3h2-j279 Auth.js: OAuth state, nonce, and PKCE check cookies are not bound to the provider that created them
History

Thu, 13 Aug 2026 10:15:00 +0000

Type Values Removed Values Added
First Time appeared Nextauth.js
Nextauth.js core
Nextauth.js next-auth
Vendors & Products Nextauth.js
Nextauth.js core
Nextauth.js next-auth

Wed, 12 Aug 2026 20:45:00 +0000

Type Values Removed Values Added
Description 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.
Title NextAuth.js: OAuth state, nonce, and PKCE check cookies are not bound to the provider that created them
Weaknesses CWE-345
CWE-346
CWE-940
References
Metrics cvssV3_1

{'score': 6.8, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N'}


Subscriptions

Nextauth.js Core Next-auth
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-13T15:32:15.689Z

Reserved: 2026-08-12T14:32:11.795Z

Link: CVE-2026-73419

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-12T21:17:41.033

Modified: 2026-08-13T16:19:04.860

Link: CVE-2026-73419

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-13T09:47:54Z

Weaknesses
  • CWE-345

    Insufficient Verification of Data Authenticity

  • CWE-346

    Origin Validation Error

  • CWE-940

    Improper Verification of Source of a Communication Channel