GHSA-gp8f-8m3g-qvj9

Suggest an improvement
Source
https://github.com/advisories/GHSA-gp8f-8m3g-qvj9
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2024/09/GHSA-gp8f-8m3g-qvj9/GHSA-gp8f-8m3g-qvj9.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-gp8f-8m3g-qvj9
Aliases
Published
2024-09-17T21:58:09Z
Modified
2024-09-18T14:28:54Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
  • 8.7 (High) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N CVSS Calculator
Summary
Next.js Cache Poisoning
Details

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
References

Affected packages

npm / next

Package

Affected ranges

Type
SEMVER
Events
Introduced
13.5.1
Fixed
13.5.7

npm / next

Package

Affected ranges

Type
SEMVER
Events
Introduced
14.0.0
Fixed
14.2.10