Next.js: Response Body Cache Confusion with Invalid UTF-8 Request Bodies
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Attack requirements
- Present
- Impact type
- —
- Confidentiality · integrity · availability
- Low · Low · None
- Fix status
- Partial Red Hat: 8 without a fix
Attack profile from CVSS 4.0 · CNA. Fix status from CNA, GitHub and Red Hat.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| vercel | next.js | 13.0.0 to before 15.5.21; 16.0.0 to before 16.2.11 | 15.5.21, 16.2.11 | Patch available | CNA |
| — | next (npm) | 13.0.0 to before 15.5.21 | 15.5.21 | Patch available | GHSA-4633-3j49-mh5q |
| — | next (npm) | 16.0.0 to before 16.2.11 | 16.2.11 | Patch available | GHSA-4633-3j49-mh5q |
- next.js Vendorvercel Affected 13.0.0 to before 15.5.21; 16.0.0 to before 16.2.11 Fixed in 15.5.21, 16.2.11 Patch available CNA
- next (npm) Vendor— Affected 13.0.0 to before 15.5.21 Fixed in 15.5.21 Patch available GHSA-4633-3j49-mh5q
- next (npm) Vendor— Affected 16.0.0 to before 16.2.11 Fixed in 16.2.11 Patch available GHSA-4633-3j49-mh5q
Remediation
- Fix · CNA next.js (vercel) Fixed in 15.5.21, 16.2.11
- Fix · GHSA-4633-3j49-mh5q next (npm) Fixed in 15.5.21 Advisory →
- Fix · GHSA-4633-3j49-mh5q next (npm) Fixed in 16.2.11 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Low. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Enterprise Linux 10 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 7 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 8 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 9 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux AI (RHEL AI) 3 | Affected | No fix yet: Fix deferred |
| Red Hat Trusted Artifact Signer | Affected | No fix yet: Fix deferred |
| streams for Apache Kafka 2 | Affected | No fix planned: Out of support scope |
| streams for Apache Kafka 3 | Affected | No fix yet: Fix deferred |
Timeline
- 2026-10-02 Threatist record created from CVE-2026-64647
- 2026-10-03 Alias added: GHSA-4633-3j49-mh5q
References
Patch 2
More vercel Next.js vulnerabilities
- TI-2025-34861 Deserialization of untrusted data in Meta react-server-dom-webpack KEVCVSS 3.1CRITICAL 10.0
- TI-2025-21309 Authorization Bypass in Next.js Middleware CVSS 3.1CRITICAL 9.1
- TI-2025-34863 Deserialization of untrusted data in Meta react-server-dom-webpack CVSS 3.1HIGH 7.5
- TI-2024-31371 Cache Poisoning in next.js CVSS 3.1HIGH 7.5
- TI-2023-24914 Next.js before 13.4.20-canary.13 lacks a cache-control header and thus empty prefetch… CVSS 3.1HIGH 7.5
- TI-2026-32490 Next.js: Server-side request forgery in applications using WebSocket upgrades CVSS 3.1HIGH 8.6
Sources
- CVE-2026-64647 · CVE Program
- CVE-2026-64647 · NVD
- FIRST EPSS
- GHSA-4633-3j49-mh5q · GitHub Advisory Database · CC BY 4.0
- CVE-2026-64647 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences