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 is only an issue when receiving request bodies with a content type charset other than UTF-8. For example, the UTF-16 byte sequences for 삃삃 and 섄섄 in the request body would share the same cache. This issue has been fixed in versions 15.5.21 and 16.2.11.
Published: 2026-07-27
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Next.js incorrectly handles cache keys for server‑side fetches when the request body’s content type uses a charset other than UTF‑8. The application may return a cached response body from a different POST request to the same URL, allowing confidential data written in a prior correct request to be exposed to an unauthorized request. The weakness involves incorrect encoding conversion (CWE‑116) and encoding mismatch leading to persistent cache key collisions (CWE‑524).

Affected Systems

The affected product is Vercel’s Next.js framework. Affected releases include all versions from 12.0.0 through 15.5.20 and 16.0.0 through 16.2.10. Versions 15.5.21 and 16.2.11 have the issue resolved.

Risk and Exploitability

The CVSS score of 6.3 indicates a medium severity vulnerability. The EPSS score of < 1% shows a low likelihood of exploitation, and the vulnerability is not listed in the CISA KEV catalog. The attack vector involves submitting a POST request with a non‑UTF‑8 encoded body to a URL that performs server‑side fetching; the attacker can trigger a cached response from a previous legitimate request and retrieve sensitive data. The exploit does not require authentication, but the attacker must control the HTTP request. Given the limited exploitation data, the threat remains moderate but could pose significant risk if an attacker can generate appropriate requests.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to the fixed releases 15.5.21 or 16.2.11 as soon as possible.
  • If an immediate upgrade is not feasible, ensure that all POST request bodies are encoded in UTF‑8 and avoid using other charsets to prevent cache key collisions.
  • If upgrade and encoding controls cannot be applied immediately, configure your Next.js app to disable caching for POST requests or remove cache entries for requests with non‑UTF‑8 bodies to avoid the cache collision issue.

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

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-4633-3j49-mh5q Next.js: Cache confusion of response bodies for requests with bodies containing invalid UTF-8 byte sequences
History

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

Type Values Removed Values Added
Weaknesses CWE-524
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Low


Tue, 28 Jul 2026 04:30: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 is only an issue when receiving request bodies with a content type charset other than UTF-8. For example, the UTF-16 byte sequences for 삃삃 and 섄섄 in the request body would share the same cache. This issue has been fixed in versions 15.5.21 and 16.2.11.
Title Next.js: Response Body Cache Confusion with Invalid UTF-8 Request Bodies
Weaknesses CWE-116
References
Metrics cvssV4_0

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

ssvc

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


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-27T19:27:13.932Z

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

Link: CVE-2026-64647

cve-icon Vulnrichment

Updated: 2026-07-27T19:27:11.150Z

cve-icon NVD

Status : Analyzed

Published: 2026-07-27T19:17:21.627

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

Link: CVE-2026-64647

cve-icon Redhat

Severity : Low

Publid Date: 2026-07-27T19:11:28Z

Links: CVE-2026-64647 - Bugzilla

cve-icon OpenCVE Enrichment

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

Weaknesses
  • CWE-116

    Improper Encoding or Escaping of Output

  • CWE-524

    Use of Cache Containing Sensitive Information