Auth0 Next.js SDK CVE-2025-67490
MEDIUMAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to target Next.js app
-
DeliveryIssue simultaneous token requests on shared client
-
ExploitWin TokenRequestCache lookup race
-
ExecutionReceive another request's cached token
-
ImpactAccess resources with mismatched token
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the application to use the @auth0/nextjs-auth0 SDK at exactly v4.11.0, 4.11.1, or 4.12.0 configured with a singleton Auth0 client instance, and to receive simultaneous (concurrent) getAccessToken requests on that same client so the TokenRequestCache returns an improper lookup result. Exploitation is limited by the need to win a non-deterministic concurrency race (AC:H), by the attacker needing to be an interacting/authenticated user of the app (PR:L), and by the requirement that another distinct token request be genuinely in-flight at the same moment. It does not affect other SDK versions or non-singleton client patterns. |
| Impact | This is a genuine authorization/confidentiality flaw (CWE-863) but a low real-world priority. The CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:L/A:N = 5.4 Medium) shows the severity is dominated by C:H - cross-request token confusion, where a concurrent request may receive another request's access-token results from the TokenRequestCache. Multiple mitigating signals align: AC:H reflects that exploitation depends on winning a non-deterministic race between simultaneous in-flight token requests on the same singleton client, and PR:L means the actor must already be an interacting user of the application. EPSS is 0.20% (9th percentile), there is no CISA KEV entry, and no public exploit code is referenced - no public exploit identified at time of analysis. The bug is real and vendor-confirmed via GitHub advisory GHSA-wcgj-f865-c7j7 (fix removes the TokenRequestCache entirely), but its exploitation is opportunistic and timing-dependent rather than a reliable, weaponizable attack. Note one inconsistency worth flagging: the input tag 'Authentication Bypass' overstates and mischaracterizes this issue - it is an improper-authorization/race-condition token mix-up (CWE-863), not an auth bypass. Overall: legitimate defect meriting a routine SDK upgrade, not an emergency-patch scenario. |
| Exploit ScenarioDerived | In an app using a singleton Auth0 client, an attacker times authenticated requests to arrive simultaneously with another user's token request so that the shared TokenRequestCache returns the wrong cached in-flight result, potentially handing the attacker an access token minted for a different audience/scope or user context. Because the flaw is a non-deterministic race (AC:H) requiring an already-authenticated session (PR:L), success is opportunistic. No public proof-of-concept is referenced in the available data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 26, 2026
Concurrent token requests handled by the Auth0 Next.js SDK can be resolved through an internal in-flight request cache to the wrong result, causing an application that uses a singleton Auth0 client to receive an access token belonging to a different, simultaneously executed request - an incorrect-authorization and confidentiality exposure tracked as CWE-863. Only @auth0/nextjs-auth0 versions 4.11.0, 4.11.1, and 4.12.0 are affected; releases 4.11.2 and 4.12.1 remove the faulty TokenRequestCache. Exploitation is gated on winning a non-deterministic concurrency race (AC:H) by an authenticated user of the application (PR:L), the EPSS score is only 0.20% (9th percentile), and no public exploit has been identified at time of analysis.
RemediationAI
Upgrade @auth0/nextjs-auth0 to 4.11.2 (for the 4.11.x line) or 4.12.1 (for the 4.12.x line), per the vendor advisory at https://github.com/auth0/nextjs-auth0/security/advisories/GHSA-wcgj-f865-c7j7; the fix commit is https://github.com/auth0/nextjs-auth0/commit/26cc8a7c60f4b134700912736f991a25bd6bbf0b, which removes the TokenRequestCache altogether. Vendor-released patch: 4.11.2 and 4.12.1. Because the flaw requires simultaneous getAccessToken calls on a shared singleton client, organizations that cannot upgrade immediately can reduce exposure by avoiding a shared singleton Auth0 client across request handlers (per-request client instantiation), or by serializing/mutating token requests so that concurrent calls with different audience or scope never overlap - at the cost of extra token endpoint round-trips and possibly duplicate token storage, which is the same trade-off the upstream fix makes. Note that upgrading changes behavior: concurrent identical requests will no longer be deduplicated, and may each hit the token endpoint and persist separate (but equivalent) tokens.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The defect lives in the Auth0 Next.js SDK's in-flight request deduplication layer, the TokenRequestCache, which was intended to coalesce simultaneous getAccessToken calls on the same client so that parallel requests for the same audience/scope would share one underlying token request. When multiple token requests with differing parameters are in flight at the same moment on a singleton Auth0Client instance, the cache lookup can match the wrong entry and hand a caller a token produced for another request. This is a classic authorization-correctness failure (CWE-863, Incorrect Authorization): the SDK returns a credential the caller should not have received, breaking the binding between the request's intended audience/scope and the token actually returned. The upstream fix (commit 26cc8a7c60f4b134700912736f991a25bd6bbf0b) removes TokenRequestCache entirely, deletes its unit tests, and restores a direct call to executeGetAccessToken, accepting that concurrent identical calls will each execute independently rather than risk incorrect deduplication. The affected CPEs (cpe:2.3:a:auth0:nextjs-auth0:4.11.0, :4.11.1, :4.12.0 on the node.js platform) confirm this is the npm package @auth0/nextjs-auth0, a server-side SDK running in Node.js.
Know when Next.js gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:L/A:N
Network-reachable but exploitation hinges on winning a concurrency race (AC:H) by an authenticated app user (PR:L); primary impact is cross-request token disclosure (C:H), minor integrity (I:L), no availability effect.
Primary rating from Vendor (github).
CVSS VectorVendor: github
DescriptionCVE.org
The Auth0 Next.js SDK is a library for implementing user authentication in Next.js applications. When using versions 4.11.0 through 4.11.2 and 4.12.0, simultaneous requests on the same client may result in improper lookups in the TokenRequestCache for the request results. This issue is fixed in versions 4.11.2 and 4.12.1.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Affected Products (CPE)CVE.org
Next.js versions 1.11.4 through 15.2.2 contain a critical middleware authorization bypass via the x-middleware-subreques
ZEIT Next.js before 2.4.1 has directory traversal under the /_next and /static request namespace, allowing attackers to
Next.js is a React framework for building full-stack web applications. Rated medium severity (CVSS 6.5), this vulnerabil
Improper restriction of excessive authentication attempts (CWE-307) in the 9Router AI router package (decolua/9router) b
A remote code execution vulnerability (CVSS 9.1). Critical severity with potential for significant impact on affected sy
Authentication/authorization bypass in Clerk's official JavaScript SDKs (@clerk/nextjs, @clerk/nuxt, @clerk/astro, and t
Server-side request forgery in the Progress Sitefinity Next.js SDK npm package (@progress/sitefinity-nextjs-sdk, version
Prototype pollution in tRPC's @trpc/server package, specifically within the `formDataToObject` function used by the expe
A security vulnerability in Next.js applications. In Auth0 Next.js SDK (CVSS 7.7). High severity vulnerability requiring
Unauthenticated remote attackers can repeatedly invoke the revalidateProducts Server Action in the MarcosCamara01 Ecomme
Unauthenticated remote attackers can call the cleanCache handler in NotionNext's pages/api/cache.js to force cache inval
Next.js is a React framework for building full-stack web applications. Rated low severity (CVSS 3.7), this vulnerability
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB