Patchfirst
CVE-2024-46982 Public exploit High · 7.5 EPSS 59.2%

Cache Poisoning in next.js

vercel · next.js

Summary

Cache poisoning in Next.js, specifically in the pages router's rendering of non-dynamic server-side rendered routes, lets a crafted HTTP request cause a route that should not be cached to be stored in the cache. An unauthenticated remote attacker can trigger this over the network without user interaction, and the poisoned response can also be cached by upstream CDNs that honour the resulting cache headers.

Official description · CVE.org

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.

Breakdown
65.1 / 100
Exploited
Yes, in VulnCheck KEV
Reports
0
Tactics
0/15

First seen exploited 9 months after disclosure. Public exploit code (PoC-in-GitHub) appeared 3 months after disclosure.

  1. Disclosedday 0
  2. Public exploit codePoC-in-GitHub+3 mo
  3. First seen exploitedVulnCheck KEV evidence+9 mo

See the family tree

6 related vulnerabilities in the same code over 22 months. The latest fix listed for next is 15.1.6.

Same bug familyLinked by evidence that a fix failed or the same code was patched again. Oldest first.

  1. CVE-2023-46298Next.js before 13.4.20-canary.13 lacks a cache-control header…22 Oct 2023
  2. relatedMedium

    Why these are linked:

    This CVECVE-2024-46982Cache Poisoning in next.js17 Sep 2024
  3. relatedHigh

    Why these are linked:

    CVE-2024-51479Authorization bypass in Next.js17 Dec 2024
  4. relatedMedium

    Why these are linked:

    CVE-2025-49005Next.js cache poisoning due to omission of Vary header3 Jul 2025
  5. relatedMedium

    Why these are linked:

    CVE-2025-49826Next.js DoS vulnerability via cache poisoning3 Jul 2025
  6. same family
    CVE-2025-57822Next.js Improper Middleware Redirect Handling Leads to SSRF29 Aug 2025

Fixes in nextnpm package, by fixed version. Earlier and later fixes in the same package, not necessarily the same bug.

  1. 13.5.1CVE-2024-343509 May 2024
  2. 14.1.1CVE-2024-343519 May 2024
  3. 14.2.7CVE-2024-4783114 Oct 2024
  4. 14.2.10CVE-2024-4698217 Sep 2024
  5. 14.2.15CVE-2024-5147917 Dec 2024
  6. 15.1.2CVE-2024-563323 Jan 2025
  7. 15.1.6CVE-2025-3242114 May 2025Latest listed

techniques

No techniques linked

No ATT&CK techniques are linked to this CVE yet. MITRE CTID has not mapped it, and no report passage in the corpus ties it to a technique.

Am I affected? What do I upgrade to?

From GitHub Security Advisories and OSV

1 package in 1 ecosystem. Main package: next.

Upgrade to 14.2.25 or later

Fixes this CVE and 1 other known vulnerability in this package (CVE-2025-29927).

npmnpm install next@14.2.25

First fixed in 14.2.10 for CVE-2024-46982.

Affected versions, by release line

If you runUpgrade to
14.0.0 up to 14.2.1014.2.25first fix for this CVE: 14.2.10
13.5.1 up to 13.5.713.5.9first fix for this CVE: 13.5.7

“Up to” means the second version is the fix and is not affected.

Check your lockfile against all CVEs

What security researchers reported

Not named in any threat report yet

References

3 links, grouped by NVD tag
↑ ↓ chooseEnter openEsc close