Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRequest page with root param A
-
DeliveryOuter 'use cache' entry written omitting root param
-
ExploitRequest page with root param B
-
ExecutionCached A-content served for B
-
ImpactShared cache headers redistribute via CDN
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V3 - Web Frontend Security Cache-Control for sensitive pages
|
| Exploitation Conditions | Exploitation requires the opt-in Cache Components feature enabled (cacheComponents: true) on Next.js 16.3.0 through 16.3.7, AND an application structure where a 'use cache' function calls another 'use cache' function that reads a value from next/root-params, AND the app differentiates content by root param values (e.g. multi-tenant, multi-locale, or multi-region routing). The leak is not attacker-controllable: which root-param value's content gets served depends solely on which invocation populated the shared cache entry first, so there is no reliable way to target a specific victim's data. Limiting factors: the vulnerable feature is non-default/opt-in, apps without nested 'use cache' calls reading root params are unaffected, and the flaw is fully remediated by upgrading to 16.3.8. Shared cache headers can widen blast radius by letting downstream CDN/proxy caches redistribute the mismatched content. |
| Impact | This is a genuine but modest-severity information-disclosure/cache-correctness flaw, not an emergency. The vendor CVSS 4.0 score of 6.3 (AV:N/AC:L/AT:P/PR:N/UI:N/VC:L only) is internally consistent with the description: network-reachable, no auth, but an Attack Requirement (AT:P) reflects that exploitation depends on race-like timing - specifically which invocation writes the shared cache entry first - rather than any attacker-steered input. Crucially, the description states twice that the leaked values CANNOT be attacker controlled and that which value is served 'depends only on which invocation wrote the entry first,' so this behaves as an accidental cross-root-param content-substitution bug rather than a targeted exfiltration primitive; confidentiality impact is correctly capped at VC:L (VI/VA:N). There is no EPSS score, no CISA KEV listing, and no public exploit identified at time of analysis, so there is no public exploit identified at time of analysis. The main amplifier is deployment reach: Next.js is extremely widely deployed, but this specific defect only manifests when the opt-in Cache Components feature (cacheComponents: true) is enabled AND an app uses nested 'use cache' functions where an inner call reads a root param - a narrow configuration that sharply limits the realistically affected population. Net: real priority only for teams running Cache Components in multi-root-param apps; for everyone else it is a high-CVSS-product / low-real-risk situation. No key signals conflict, though the 'passive, non-attacker-controlled' nature means the practical risk is content-correctness/privacy leakage rather than classic exploitation. |
| Exploit ScenarioDerived | A Next.js site (16.3.0-16.3.7) runs with cacheComponents: true and serves per-tenant or per-locale pages keyed on a root param, where an outer 'use cache' function calls an inner 'use cache' function that reads that root param. The inner call is served from an existing entry, so the outer function's cache key omits the root param; the first request to populate it writes content for one root-param value, and every subsequent request for other values is served that same cached content, with shared cache headers potentially fanning it out through downstream CDNs. No public exploit code exists, and the outcome is non-deterministic cross-value content substitution rather than attacker-chosen data retrieval. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 01, 2026
Information disclosure in Next.js 16.3.0 through 16.3.7 is a modest-severity cache-correctness flaw that can serve cached content for one root-param value to requests for a different root-param value when the opt-in Cache Components feature is enabled, allowing remote unauthenticated requests to receive content intended for another tenant, locale, or region. The flaw requires nested use cache functions where an inner function reads next/root-params; the leaked content is not attacker-controlled and depends on which invocation first populates the shared cache entry. Vendor-released patch: 16.3.8; no public exploit identified at time of analysis.
RemediationAI
Upgrade to Next.js 16.3.8, the vendor-released patch, as documented in the release notes and advisory GHSA-h694-7cp9-m8p3. If an immediate upgrade is not possible, do not enable cacheComponents: true, or refactor the affected code so that an outer use cache function does not call another use cache function that reads next/root-params; explicitly include root param values in cache keys where caching is required, though this is a code change with regression risk. Because shared cache headers can let downstream CDN and proxy caches redistribute mismatched content, purge or invalidate downstream caches for affected routes after upgrading or changing configuration. There is no vendor-released patch for the vulnerable 16.3.0-16.3.7 range other than upgrading to 16.3.8; no public exploit identified at time of analysis.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Next.js is a React framework whose App Router supports caching directives via Cache Components and the use cache directive; this issue also involves next/root-params, which exposes route/root parameter values to server components. CWE-524 (Use of Cache Containing Sensitive Information) is the relevant root-cause class: when an outer use cache function calls an inner use cache function that reads a root param, and the inner call is served from an existing entry, the outer function's cache key is generated without that root param. The affected product is Vercel Next.js, with CPE cpe:2.3:a:vercel:next.js:*:*:*:*:*:*:*:*; the vulnerable range is 16.3.0 through 16.3.7. As a result, one cache entry can be reused for all root-param values, so prerendered, runtime-rendered, and dynamically rendered pages can serve content produced for a different root-param value; shared cache headers can cause downstream CDN or proxy caches to redistribute the mismatched content further. The issue is opt-in (cacheComponents: true) and requires the specific nested cache/root-param structure; the confidentiality impact is low, and the leaked value is not attacker-controlled.
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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable with no auth, but AC:H because the leak hinges on non-deterministic cache-write ordering and a specific opt-in config; confidentiality-only and low since leaked content is not attacker-controlled.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Next.js versions from 16.3.0 to 16.3.7 warm use cache handlers using next/root-params and can leak their return value to pages with different root params. With Cache Components enabled (cacheComponents: true), a 'use cache' function that calls another 'use cache' function that reads a root param can be keyed incorrectly when the inner call is served from an existing entry: the enclosing function's cache key then omits that root param. The enclosing entry is written once and reused for all root param values, so a response for one root param value can serve content produced for a different value - whether the page is prerendered at build time or at runtime, or rendered dynamically. Shared cache headers let downstream caches redistribute the content further.
What values are leaked cannot be attacker controlled. Which value's content is served depends only on which invocation wrote the entry first.
This has been patched in 16.3.8.
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
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
React Server Components in React 19.x contain a critical pre-authentication remote code execution vulnerability (CVE-202
ZEIT Next.js before 2.4.1 has directory traversal under the /_next and /static request namespace, allowing attackers to
Pre-authentication denial of service in React Server Components (versions 19.0.0 through 19.2.1) allows unauthenticated
Information disclosure in React Server Components 19.x, distributed as react-server-dom-webpack, react-server-dom-turbop
Path traversal in Next.js (13.4.0 through 15.5.23 and 16.x before 16.3.3) running on Windows-hosted servers lets a remot
Next.js is a React framework that can provide building blocks to create web applications. Rated high severity (CVSS 7.5)
Next.js before 13.4.20-canary.13 lacks a cache-control header and thus empty prefetch responses may sometimes be cached
ZEIT Next.js 4 before 4.2.3 has Directory Traversal under the /_next request namespace. Rated high severity (CVSS 7.5),
Unsafe deserialization in React Server Components Server Function endpoints allows remote unauthenticated attackers to t
Server-side request forgery in the Next.js Image Optimization endpoint lets a remote, unauthenticated attacker cause the
Next.js versions before 9.3.2 have a directory traversal vulnerability. Rated medium severity (CVSS 4.3), this vulnerabi
Next.js is a React framework for building full-stack web applications. Rated high severity (CVSS 7.5), this vulnerabilit
EUVD-2026-90872
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB