Next.js: Cache confusion of response bodies for requests with bodies containing invalid UTF-8 byte sequences
GHSA-4633-3j49-mh5q · CVE-2026-64647
Published · Modified
Description
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.
References
- WEB https://github.com/vercel/next.js/security/advisories/GHSA-4633-3j49-mh5q
- WEB https://github.com/vercel/next.js/pull/96008
- WEB https://github.com/vercel/next.js/commit/025bf4a5f7b47fb7758c4ebf1c931a61c451c082
- PACKAGE https://github.com/vercel/next.js
- WEB https://github.com/vercel/next.js/releases/tag/v15.5.21
- WEB https://github.com/vercel/next.js/releases/tag/v16.2.11
Ready to move
Start Securing
Free, no credit card | First findings in minutes