Description
Next.js is a React framework for building full-stack web applications. In versions 12.0.0 through 15.5.20 and 16.0.0 through 16.2.10, a server-side fetch with a request body may return a cached response body from a different request to the same URL but different body. Confidential data in the POST's response body would then leak to unauthorized requests. Though the request itself will not be deduped. This only applies to fetch calls with a request that has a different init than the one passed to fetch. A safe request would be: fetch(new Request(init), init). An unsafe request would be: fetch(new Request(init), aDifferentInit). This issue has been fixed in versions 15.5.21 and 16.2.11.
Published: 2026-07-27
Score: 6 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

This vulnerability occurs in Next.js versions 12.0.0 through 15.5.20 and 16.0.0 through 16.2.10 where a server‑side fetch request that includes a body can return a cached response body from a different request to the same URL but with a different body. The result can be the exposure of confidential data contained in the POST response to unauthorized users. The weakness stems from improper handling of cache keys when the fetch init differs from the Request init, classified as CWE‑524.

Affected Systems

Vulnerable systems are applications built with the Vercel Next.js framework, specifically the affected product versions listed above. Any deployment using Next.js 12 – 15.5.20 or 16 – 16.2.10 and performing server‑side fetches with bodies is at risk until the code is upgraded to at least 15.5.21 or 16.2.11.

Risk and Exploitability

The CVSS score of 6.0 indicates moderate severity. The EPSS score is < 1%, indicating a low exploitation probability, and the vulnerability is not listed in CISA KEV. The likely attack vector is a remote attacker sending crafted POST requests to a vulnerable page that performs a server‑side fetch. The exploit would require that the attacker can observe the side‑channel of the cached response body, which would reveal sensitive data. Once the vulnerability is exploited, confidentiality is compromised; integrity and availability are not directly affected.

Generated by OpenCVE AI on August 3, 2026 at 16:55 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to Next.js 15.5.21 or newer, or Next.js 16.2.11 or newer, to apply the official fix.
  • If an upgrade cannot be performed immediately, modify any server‑side fetch calls to use a safe request pattern such as fetch(new Request(init), init) so that the fetch init matches the Request init and prevents cached response confusion.
  • Consider restricting access to endpoints that expose sensitive data behind authentication so that only authorized users can trigger server‑side fetches, reducing the exposure of confidential information.

Generated by OpenCVE AI on August 3, 2026 at 16:55 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-68g3-v927-f742 Next.js: Cache confusion of response bodies for requests with bodies
History

Wed, 29 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Important


Tue, 28 Jul 2026 16:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 28 Jul 2026 05:00:00 +0000

Type Values Removed Values Added
First Time appeared Vercel
Vercel next.js
Vendors & Products Vercel
Vercel next.js

Mon, 27 Jul 2026 20:30:00 +0000

Type Values Removed Values Added
Description Next.js is a React framework for building full-stack web applications. In versions 12.0.0 through 15.5.20 and 16.0.0 through 16.2.10, a server-side fetch with a request body may return a cached response body from a different request to the same URL but different body. Confidential data in the POST's response body would then leak to unauthorized requests. Though the request itself will not be deduped. This only applies to fetch calls with a request that has a different init than the one passed to fetch. A safe request would be: fetch(new Request(init), init). An unsafe request would be: fetch(new Request(init), aDifferentInit). This issue has been fixed in versions 15.5.21 and 16.2.11.
Title Next.js: Response Body Cache Confusion for Requests Containing Bodies
Weaknesses CWE-524
References
Metrics cvssV4_0

{'score': 6, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-28T14:14:16.051Z

Reserved: 2026-07-20T17:11:30.895Z

Link: CVE-2026-64648

cve-icon Vulnrichment

Updated: 2026-07-28T14:14:08.569Z

cve-icon NVD

Status : Analyzed

Published: 2026-07-27T20:16:40.563

Modified: 2026-07-29T14:38:20.310

Link: CVE-2026-64648

cve-icon Redhat

Severity : Important

Publid Date: 2026-07-27T19:20:42Z

Links: CVE-2026-64648 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T17:00:06Z

Weaknesses
  • CWE-524

    Use of Cache Containing Sensitive Information