Next.js: Cache confusion of response bodies for requests with bodies containing invalid UTF-8 byte sequences
## Impact 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. ## Workarounds If you cannot upgrade, consider only making fetch requests with UTF-8 bodies (default in Next.js). Applications using Pages Router are not vulnerable.
describes (1)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2026-64647US | medium5.4 | — | ||
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 re… | ||||
references
External citations — patches, advisories, analysis.
- https://github.com/vercel/next.jsPACKAGE
- https://github.com/vercel/next.js/commit/025bf4a5f7b47fb7758c4ebf1c931a61c451c082WEB
- https://github.com/vercel/next.js/pull/96008WEB
- https://github.com/vercel/next.js/releases/tag/v15.5.21WEB
- https://github.com/vercel/next.js/releases/tag/v16.2.11WEB
- https://github.com/vercel/next.js/security/advisories/GHSA-4633-3j49-mh5qWEB
Advisories like this name the exposed products attackers go after on your perimeter. See what is exposed on your perimeter with a free passive scan.
Free scan