{"id":"GHSA-gp8f-8m3g-qvj9","summary":"Next.js Cache Poisoning","details":"### Impact\n\nBy 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. \n\nTo be potentially affected all of the following must apply: \n\n- Next.js between 13.5.1 and 14.2.9\n- Using pages router\n- Using non-dynamic server-side rendered routes e.g. `pages/dashboard.tsx` not `pages/blog/[slug].tsx`\n\nThe below configurations are unaffected:\n\n- Deployments using only app router\n- Deployments on [Vercel](https://vercel.com/) are not affected\n\n\n### Patches\n\nThis 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.\n\n### Workarounds\n\nThere are no official or recommended workarounds for this issue, we recommend that users patch to a safe version.\n\n#### Credits\n\n- Allam Rachid (zhero_)\n- Henry Chen","aliases":["CVE-2024-46982"],"modified":"2026-09-10T03:50:18.787070679Z","published":"2024-09-17T21:58:09Z","database_specific":{"github_reviewed_at":"2024-09-17T21:58:09Z","nvd_published_at":"2024-09-17T22:15:02Z","cwe_ids":["CWE-349","CWE-639"],"severity":"HIGH","github_reviewed":true},"references":[{"type":"WEB","url":"https://github.com/vercel/next.js/security/advisories/GHSA-gp8f-8m3g-qvj9"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-46982"},{"type":"WEB","url":"https://github.com/vercel/next.js/commit/7ed7f125e07ef0517a331009ed7e32691ba403d3"},{"type":"WEB","url":"https://github.com/vercel/next.js/commit/bd164d53af259c05f1ab434004bcfdd3837d7cda"},{"type":"PACKAGE","url":"https://github.com/vercel/next.js"}],"affected":[{"package":{"name":"next","ecosystem":"npm","purl":"pkg:npm/next"},"ranges":[{"type":"SEMVER","events":[{"introduced":"13.5.1"},{"fixed":"13.5.7"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2024/09/GHSA-gp8f-8m3g-qvj9/GHSA-gp8f-8m3g-qvj9.json"}},{"package":{"name":"next","ecosystem":"npm","purl":"pkg:npm/next"},"ranges":[{"type":"SEMVER","events":[{"introduced":"14.0.0"},{"fixed":"14.2.10"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2024/09/GHSA-gp8f-8m3g-qvj9/GHSA-gp8f-8m3g-qvj9.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"},{"type":"CVSS_V4","score":"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"}]}