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:
pages/dashboard.tsx not pages/blog/[slug].tsxThe below configurations are unaffected:
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.
{
"severity": "HIGH",
"github_reviewed": true,
"nvd_published_at": "2024-09-17T22:15:02Z",
"cwe_ids": [
"CWE-349",
"CWE-639"
],
"github_reviewed_at": "2024-09-17T21:58:09Z"
}