Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach self-hosted Pages Router ISR/SSG app
-
DeliverySend crafted route requests
-
ExploitExploit cache-key/source-route collision
-
ExecutionOverwrite target page's cache entry
-
ImpactAll visitors served wrong content until revalidation
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V3 - Web Frontend Security Cache-Control for sensitive pages
|
| Exploitation Conditions | Exploitable only against self-hosted Next.js applications (versions 15.0.0 up to but not including 15.5.27, and 16.x up to but not including 16.3.8) that use the Pages Router with statically generated (SSG) or Incremental Static Regeneration (ISR) pages; the response cache keys entries without sufficiently binding them to the originating source route. Limiting factors: applications deployed on Vercel are explicitly NOT affected; App Router-only sites and sites without SSG/ISR cached pages are not in scope; and the CVSS AC:H/AT:P metrics indicate exploitation requires specific conditions (e.g. timing around when a cache entry is keyed/written) rather than a single deterministic request, even though no authentication (PR:N) or user interaction (UI:N) is needed. |
| Impact | This is a medium-severity (CVSS 4.0 base 6.3) response-cache poisoning / confusion issue, and the available signals consistently point to a moderate-to-low real-world priority rather than an urgent one. The CVSS vector (AV:N/AC:H/AT:P/PR:N/UI:N) shows it is network-reachable and unauthenticated, but both high attack complexity (AC:H) and a present attack requirement (AT:P) indicate exploitation depends on specific, hard-to-control conditions (e.g. timing/race around cache keying) rather than a trivial single request. Impact is narrow: the vendor scored only VA:L with no confidentiality or integrity vulnerable-system impact, reflecting degraded correctness/availability of served content rather than code execution or data theft. No EPSS score was provided in the input, there is no CISA KEV listing, and no public proof-of-concept is referenced - so by the precision rules this is 'no public exploit identified at time of analysis.' The main caveat: the description ('replace one page's cache entry with content from a different route ... serves incorrect content to every visitor') describes a cross-route content-substitution effect that is arguably an integrity impact affecting all site visitors, which sits in tension with the vendor's choice of VA:L (availability) and VI:N (no integrity) - verify impact framing with the vendor. Exposure is further bounded to self-hosted deployments using the Pages Router with SSG/ISR; Vercel-hosted apps are explicitly unaffected. |
| Exploit ScenarioDerived | An unauthenticated remote attacker repeatedly sends crafted requests to a self-hosted Next.js Pages Router site that uses statically generated or ISR pages, exploiting insufficient binding between the response-cache key and the source route so a cache entry for one page is written from a different route's content. Once the entry is poisoned, every visitor to the affected page receives the wrong content until the next revalidation. Success requires meeting specific conditions (AC:H/AT:P) such as timing, and no public proof-of-concept is currently identified. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 02, 2026
Response-cache confusion in self-hosted Next.js (15.0.0 up to but not including 15.5.27, and 16.x up to but not including 16.3.8) lets an unauthenticated remote request key a cached Pages Router response without sufficiently binding it to the originating source route, so one page's cache entry can be overwritten with content from a different route and every subsequent visitor to the affected page is served the wrong content until the entry revalidates. Scope is narrow: only self-hosted apps using the Pages Router with statically generated (SSG) or Incremental Static Regeneration (ISR) pages are exposed - applications deployed on Vercel are explicitly not affected, and App Router-only or uncached/dynamic setups are out of scope. The assessed vector (AV:N/AC:H, PR:N, UI:N, integrity-only impact) and the fact that no public exploit code has been identified at time of analysis keep this a moderate-severity correctness/integrity problem rather than an urgent one; vendor patches are available as 15.5.27 and 16.3.8.
RemediationAI
Vendor-released patch: upgrade to Next.js 15.5.27 (15.x line) or 16.3.8 (16.x line) as documented in GHSA-4jqv-mc3x-m676 and the corresponding release tags; the fix re-keys cached responses to include a SHA-256 hash of the source route, so upgrade should be treated as mandatory for any self-hosted Pages Router site using SSG or ISR. After patching, purge existing response caches - delete the Next.js build/cache directories and any poisoned entries in external or custom caches (for example the server/route-cache and legacy server/pages or server/app artifacts, plus any CDN or reverse-proxy caches fronting the site) - because entries created before the upgrade were keyed under the old scheme and can still be served incorrectly. If upgrading is not immediately possible, the actionable compensating control with the clearest trade-off is to eliminate the affected cache path: force dynamic rendering for the impacted routes (for example by setting dynamic = 'force-dynamic' or disabling revalidate/ISR) or remove the static/ISR caching for those pages, accepting the measurable performance and origin-load cost that comes with losing prerendered delivery. A second control applies to custom incremental cache handlers, build adapters, or CDN integrations that inspect cached responses: they must pass cache keys through unchanged and must never strip the route namespace or fall back to pathname-only keys, since doing so re-introduces the collision the patch closes; the fix documentation explicitly states that external response caches must preserve the opaque scoped key. Hosting on Vercel is unaffected and avoids the issue entirely, and narrowing exposure to Pages Router SSG/ISR routes only is not a substitute for patching, since those routes are the exploited surface.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The issue lives in Next.js's incremental/response cache layer, the mechanism configured through the incrementalCacheHandlerPath option and used to persist prerendered Pages Router output for SSG and ISR routes. Entries were keyed in a way that did not encode the source route definition strongly enough, so a response generated for one route could occupy the slot that another route reads from - a cache-key collision / insufficient cache-key scoping defect, mapped here to CWE-524 (Use of Cache Containing Sensitive Information) because a stale or foreign cached payload is subsequently served to other users. The upstream fix introduces a dedicated route-cache key helper (packages/next/src/server/lib/route-cache-key) that composes the response kind (RouteKind.PAGES, APP_PAGE, APP_ROUTE) with a SHA-256 hash of the canonical source route string - for example a Pages Router response for /blog/post generated by /blog/[slug] becomes /route-cache/PAGES/<64-hex-route-hash>/$/blog/post - and build-complete.ts was changed to emit build-time response artifacts to those scoped server/route-cache keys instead of the historical server/pages and server/app paths, with additively sorted App Router page handling so parallel/route-group entries cannot clobber one another. The accompanying documentation changes (incrementalCacheHandlerPath.mdx, plus a new hash.js dependency) make explicit that cache keys are opaque identifiers and must be preserved intact by custom cache handlers, build adapters, and any integration that reads cached responses before Next.js does; normalizing a key back to a request pathname or falling back to pathname-only entries defeats the isolation the patch provides. The request pathname remains human-readable on disk while the source-route identity is only recoverable as a hash.
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:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Network-reachable and unauthenticated (AV:N/PR:N), but cache-key collision needs specific timing conditions (AC:H); impact is substituted/incorrect served content, best modeled as limited integrity (I:L) rather than availability.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Next.js is a React framework for building full-stack web applications. From 15.0.0 until 15.5.27 and 16.3.8, self-hosted applications using the Pages Router with statically generated or Incremental Static Regeneration pages can key a response cache entry without sufficiently binding it to the source route. A request can replace one page's cache entry with content from a different route, causing the affected page to serve incorrect content to every visitor until revalidation. Applications deployed on Vercel are not affected. This issue is fixed in versions 15.5.27 and 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
Server-side request forgery in Vercel Next.js affects self-hosted deployments whose custom middleware calls next()/NextR
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
EUVD-2026-91670
GHSA-4jqv-mc3x-m676
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB