Skip to main content

Next.js CVE-2026-94544

| EUVDEUVD-2026-91668 MEDIUM
Use of Cache Containing Sensitive Information (CWE-524)
2026-10-02 GitHub_M GHSA-3w37-wq28-93x7
6.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify site using useCache with Draft Mode
  2. Delivery
    Poll cached route during editor draft preview
  3. Exploit
    Overlap pending use-cache fill for same key
  4. Execution
    Receive unpublished draft content unauthenticated
  5. Impact
    Draft content prerendered and persisted to later visitors

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V3 - Web Frontend Security Cache-Control for sensitive pages
Exploitation Conditions

Exploitable only when the site enables Cache Components or experimental.useCache AND has cached ('use cache') functions whose output depends on Draft Mode state (e.g., returning unpublished vs. published content), on affected versions 16.3.0 through 16.3.7. Exploitation further requires an editor to be actively using Draft Mode concurrently with an overlapping regular request for the same cache key, within the short window a cache fill is still pending - making it a timing race (reflected in CVSS AC:H/AT:P). Default Next.js installations without these experimental caching features enabled are not affected, and sites whose cached functions do not branch on draft state do not leak sensitive content, which substantially limits real-world exposure.

Impact

This is a genuine but moderate-severity information-disclosure flaw, not a drop-everything emergency. The vendor CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:N) scores 6.3 and its logic is sound: exploitation is network-reachable and requires no authentication or user interaction, but AC:H plus AT:P correctly reflect that success depends on winning a timing race - an attacker's regular request must overlap an editor's in-flight Draft Mode 'use cache' fill for the same key. Impact is limited to confidentiality (VC:L), with no integrity or availability impact, consistent with CWE-524 (information leak through cache). No EPSS score was provided, the CVE is not listed in CISA KEV, and no standalone public exploit was supplied - the commit ships a regression test that reproduces the race, which demonstrates feasibility but is not a weaponized POC. Weighing these signals together: the attacker cannot reliably trigger the overlap on demand (it depends on editors actively using Draft Mode concurrently with public traffic and on sub-second I/O timing), and the vulnerable configuration (Cache Components or experimental.useCache with draft-dependent cached functions) is opt-in rather than default. The practical risk is real for content platforms with active editorial Draft Mode use but low for the large majority of Next.js deployments that do not enable these features. One nuance to verify: the published-content-persisting-into-prerendered-pages behavior can serve stale/incorrect content to later visitors, which has a mild integrity flavor the vendor rated as N - defenders relying on prerender correctness should note this.

Exploit ScenarioDerived

While a logged-in editor uses Draft Mode to preview unpublished content on a site with experimental.useCache enabled, an attacker (or any ordinary visitor) sends a concurrent request for the same cached key during the brief window the editor's cache fill is still pending. Because pending fills were shared across request types, the attacker's unauthenticated request receives the editor's unpublished DRAFT content; if that request also prerenders the page, the draft content can persist and be served to subsequent visitors until revalidation. No public standalone exploit exists, though the fix commit includes a test that deterministically reproduces the race with simulated I/O latency.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 02, 2026

Unpublished draft content can leak to unauthenticated visitors of Next.js sites running versions 16.3.0 through 16.3.7 when Cache Components or the experimental.useCache flag is enabled: pending 'use cache' fills for the same key are shared without isolating Draft Mode requests from regular ones, so an overlapping regular request can be served an editor's unpublished content, and that draft-dependent content can then persist in a prerendered page until revalidation. Exploitation is a narrow timing race that additionally requires an editor to be concurrently using Draft Mode for the same cache key, which is reflected in the high attack-complexity rating (CVSS 4.0 base 6.3, AV:N/AC:H/AT:P/PR:N/UI:N/VC:L); there is no public exploit identified at time of analysis and no evidence of active exploitation. The issue is fixed in Next.js 16.3.8.

RemediationAI

Upgrade to Next.js 16.3.8 or later; this is the vendor-released patch and contains the change to skip cross-request cache-fill deduplication whenever Draft Mode is active (commit bd9214f9a32854a011bf5fe58e481dffe1bbf598, advisory GHSA-3w37-wq28-93x7). If an immediate upgrade is not possible, compensating controls in order of effectiveness are: disable Cache Components and remove or turn off experimental.useCache in next.config.js, which eliminates the cross-request fill sharing entirely at the cost of losing cached 'use cache' performance benefits; or, if caching must stay enabled, ensure no cached function branches on draftMode() output, for example by resolving draft-dependent data outside the cached boundary or by explicitly segregating draft and published cache keys, though this requires code review of every 'use cache' function and is error-prone. Because the vulnerable sharing occurs only within a single server process, deployments that fan requests across isolated processes or serverless invocations (each request or lambda maintaining its own in-flight fills) naturally reduce the window in which a regular request can join a draft fill, making that topology a partial mitigation rather than a fix. After upgrading, revalidate or purge any statically generated pages that were prerendered while the flaw was reachable, since leaked draft-dependent content could persist in those pages until their normal revalidation. No exploit code has been published, so prioritization can follow normal patching cadence rather than emergency response.

Affected VersionsENISA

next.js 16.3.0, < 16.3.8

Affected Packages

npm next fix: 16.3.8
euvd next_js_16_3_0 fix: 16.3.8

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 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 flaw lives in Next.js's cross-request cache-fill deduplication logic in packages/next/src/server/use-cache/use-cache-wrapper.ts. When two requests request the same 'use cache' entry while the fill is still in flight, they join one another's pending fill rather than starting separate computations; prior to the fix, the skipCrossRequestDedupe condition only excluded 'private' caches in non-development environments, so Draft Mode state was not considered a partitioning dimension. The upstream patch (commit bd9214f9a32854a011bf5fe58e481dffe1bbf598) changes that condition to also skip dedupe when workStore.isDraftMode is true in either direction, and threads an isDraftMode flag through the app-route build template. This is CWE-524 (Use of Cache Containing Sensitive Information): a cache keyed only on the user-supplied key, not on the draft/public authorization context, causes data from one context to be reused in another. The second-order effect is that when a regular request prerenders a page while consuming a poisoned fill, the draft-dependent markup can be baked into the generated static page and served to subsequent visitors until the entry revalidates. Only sites that enable Cache Components or experimental.useCache and whose cached functions branch on output from draftMode() are exposed.

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

Vendor (GitHub_M) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.7 LOW

Network-reachable and unauthenticated (AV:N/PR:N/UI:N), but success requires winning a concurrency race (AC:H); impact is limited confidentiality leakage of draft content (C:L), no integrity or availability loss.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Red Hat 3.7 LOW

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 02, 2026 - 16:02 EUVD
CVE Published
Oct 02, 2026 - 15:14 cve.org
MEDIUM 6.3

DescriptionCVE.org

Next.js is a React framework for building full-stack web applications. From 16.3.0 until 16.3.8, pending use cache fills for the same key are shared without separating Draft Mode requests from regular requests. An overlapping regular request can receive unauthenticated unpublished content from an editor's Draft Mode fill, while an overlapping Draft Mode request can receive published content from a regular fill. When the regular request prerenders a page, the draft-dependent content can persist in the generated page and be served to later visitors until revalidation. Sites are affected when Cache Components or experimental.useCache is enabled and cached functions return draft-dependent content. This issue is fixed in version 16.3.8.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
High
Next.js is among the most widely deployed web frameworks
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium
EUVD 🇯🇵JVN NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2025-55182 CRITICAL POC
10.0 Dec 03

React Server Components in React 19.x contain a critical pre-authentication remote code execution vulnerability (CVE-202

CVE-2017-16877 HIGH POC
7.5 Nov 17

ZEIT Next.js before 2.4.1 has directory traversal under the /_next and /static request namespace, allowing attackers to

CVE-2025-55184 HIGH POC
7.5 Dec 11

Pre-authentication denial of service in React Server Components (versions 19.0.0 through 19.2.1) allows unauthenticated

CVE-2025-55183 MEDIUM POC
5.3 Dec 11

Information disclosure in React Server Components 19.x, distributed as react-server-dom-webpack, react-server-dom-turbop

CVE-2026-75604 CRITICAL POC
9.0 Sep 01

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

CVE-2025-57822 HIGH POC
8.2 Aug 29

Server-side request forgery in Vercel Next.js affects self-hosted deployments whose custom middleware calls next()/NextR

CVE-2024-34351 HIGH POC
7.5 May 14

Next.js is a React framework that can provide building blocks to create web applications. Rated high severity (CVSS 7.5)

CVE-2023-46298 HIGH POC
7.5 Oct 22

Next.js before 13.4.20-canary.13 lacks a cache-control header and thus empty prefetch responses may sometimes be cached

CVE-2018-6184 HIGH POC
7.5 Jan 24

ZEIT Next.js 4 before 4.2.3 has Directory Traversal under the /_next request namespace. Rated high severity (CVSS 7.5),

CVE-2025-67779 HIGH
7.5 Dec 12

Unsafe deserialization in React Server Components Server Function endpoints allows remote unauthenticated attackers to t

CVE-2026-94483 HIGH
8.3 Oct 02

Server-side request forgery in the Next.js Image Optimization endpoint lets a remote, unauthenticated attacker cause the

CVE-2020-5284 MEDIUM POC
4.3 Mar 30

Next.js versions before 9.3.2 have a directory traversal vulnerability. Rated medium severity (CVSS 4.3), this vulnerabi

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy