← back
CVE-2024-46982

Cache Poisoning in next.js

CVSS 7.5 HIGHEPSS 58.8%CWE-639
In short

Next.js can be tricked into caching web pages that shouldn't be cached through specially crafted HTTP requests. This means attackers could see outdated or sensitive information that was meant to be fresh, affecting websites using certain Next.js versions with the pages router.

Technical detail

Cache poisoning vulnerability in Next.js pages router allows attackers to send crafted HTTP requests that coerce the framework to cache non-dynamic server-side rendered routes with s-maxage directives, enabling upstream CDNs to serve stale content. Affects Next.js 13.5.1–14.2.9 using pages router (app router unaffected); requires patching to v13.5.7, v14.2.10, or later.

Summary generated and translated by AI from the official description.
Next.js is a React framework for building full-stack web applications. By sending a crafted HTTP request, it is possible to poison the cache of a non-dynamic server-side rendered route in the pages router (this does not affect the app router). When this crafted request is sent it could coerce Next.js to cache a route that is meant to not be cached and send a `Cache-Control: s-maxage=1, stale-while-revalidate` header which some upstream CDNs may cache as well. To be potentially affected all of the following must apply: 1. Next.js between 13.5.1 and 14.2.9, 2. Using pages router, & 3. Using non-dynamic server-side rendered routes e.g. `pages/dashboard.tsx` not `pages/blog/[slug].tsx`. This vulnerability was resolved in Next.js v13.5.7, v14.2.10, and later. We recommend upgrading regardless of whether you can reproduce the issue or not. There are no official or recommended workarounds for this issue, we recommend that users patch to a safe version.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Affected products
vercel · next.js

Want to know if your infrastructure is exposed to this?

Talk to TrueHacking →