GitHub Advisoryadvisory · npm

GHSA-gp8f-8m3g-qvj9 Next.js Cache Poisoning

HIGH Published 2024-09-17 Modified 2024-09-18 Official page ↗
Aliases
CVE-2024-46982
Ecosystem
npm
Packages
next
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-349, CWE-639
Reviewed
2024-09-17

Affected packages

• npm next: >= 13.5.1, < 13.5.7 → fixed in 13.5.7 • npm next: >= 14.0.0, < 14.2.10 → fixed in 14.2.10

Description

Impact 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: • Next.js between 13.5.1 and 14.2.9 • Using pages router • Using non-dynamic server-side rendered routes e.g. `pages/dashboard.tsx` not `pages/blog/[slug].tsx` The below configurations are unaffected: • Deployments using only app router • Deployments on Vercel are not affected Patches 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. Workarounds There are no official or recommended workarounds for this issue, we recommend that users patch to a safe version. Credits • Allam Rachid (zhero_) • Henry Chen

Related

Alias · CVE (1)

  • CVE-2024-46982 Next.js is a React framework for building full-stack web applications. vulnerability

Weakness · CWE (2)

  • CWE-349 Acceptance of Extraneous Untrusted Data With Trusted Data weakness
  • CWE-639 Authorization Bypass Through User-Controlled Key weakness

References