CVE-2024-46982: Cache Poisoning in next.js

Published Sep 17, 2024
·
Updated

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

Other sources

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.

MITRE

Affected Software

4 affected componentsFixes available
npm/next>=14.0.0<14.2.10
14.2.10
npm/next>=13.5.1<13.5.7
13.5.7
Vercel Next.js Node.js>=13.5.1<13.5.7
Vercel Next.js Node.js>=14.0.0<14.2.10

Event History

Sep 17, 2024
CVE Published
via MITRE·09:55 PM
Data Sourced
via MITRE·09:55 PM
DescriptionSeverityWeakness
Advisory Published
via GitHub·09:58 PM
Data Sourced
via NVD·10:15 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·10:15 PM
RemedyAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2024-46982?

CVE-2024-46982 has a high severity due to its potential to allow cache poisoning on server-side rendered routes.

2

How do I fix CVE-2024-46982?

To fix CVE-2024-46982, upgrade to Next.js version 14.2.10 or 13.5.7, which address the vulnerability.

3

What impact could CVE-2024-46982 have on my application?

CVE-2024-46982 can cause unintended caching of routes, allowing for the delivery of incorrect content to users.

4

Which versions of Next.js are affected by CVE-2024-46982?

CVE-2024-46982 affects Next.js versions from 14.0.0 to 14.2.9 and 13.5.1 to 13.5.6.

5

Is the app router affected by CVE-2024-46982?

No, CVE-2024-46982 specifically affects non-dynamic server-side rendered routes in the pages router, not the app router.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203