Cache Poisoning in next.js
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-639.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- 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.5.1 to before 13.5.7; 14.0.0 to before 14.2.10 | 13.5.7, 14.2.10 | Patch available | CNA |
| — | next (npm) | 13.5.1 to before 13.5.7 | 13.5.7 | Patch available | GHSA-gp8f-8m3g-qvj9 |
| — | next (npm) | 14.0.0 to before 14.2.10 | 14.2.10 | Patch available | GHSA-gp8f-8m3g-qvj9 |
- next.js Vendorvercel Affected 13.5.1 to before 13.5.7; 14.0.0 to before 14.2.10 Fixed in 13.5.7, 14.2.10 Patch available CNA
- next (npm) Vendor— Affected 13.5.1 to before 13.5.7 Fixed in 13.5.7 Patch available GHSA-gp8f-8m3g-qvj9
- next (npm) Vendor— Affected 14.0.0 to before 14.2.10 Fixed in 14.2.10 Patch available GHSA-gp8f-8m3g-qvj9
Remediation
- Fix · CNA next.js (vercel) Fixed in 13.5.7, 14.2.10
- Fix · GHSA-gp8f-8m3g-qvj9 next (npm) Fixed in 13.5.7 Advisory →
- Fix · GHSA-gp8f-8m3g-qvj9 next (npm) Fixed in 14.2.10 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2024-46982
- 2026-10-03 Alias added: GHSA-gp8f-8m3g-qvj9
References
Patch 2
Advisory 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-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
- TI-2025-34862 Deserialization of untrusted data in Meta react-server-dom-webpack CVSS 3.1MEDIUM 5.3
Sources
- CVE-2024-46982 · CVE Program
- CVE-2024-46982 · NVD
- FIRST EPSS
- GHSA-gp8f-8m3g-qvj9 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences