
Find real vulnerabilities before they ship
Next.js is a React framework for building full-stack web applications. From 12.2.0 to before 15.5.16 and 16.2.5, an external client could send a x-nextjs-data header on a normal request to a path handled by middleware that returns a redirect. When that happened, the middleware/proxy could treat the request as a data request and replace the standard Location redirect header with the internal x-nextjs-redirect header. Browsers do not follow x-nextjs-redirect, so the response became an unusable redirect for normal clients. If the application was deployed behind a CDN or reverse proxy that caches 3xx responses without varying on this header, a single attacker request could poison the cached redirect response for the affected path. Subsequent visitors could then receive a cached redirect response without a Location header, causing a denial of service for that redirect path until the cache entry expired or was purged. This vulnerability is fixed in 15.5.16 and 16.2.5.
Base Score
5.9| Package (Ecosystem) | Introduced | Fixed | Limit |
|---|---|---|---|
| next(npm) | 12.2.0 | 15.5.16 | N/A |
| next(npm) | 16.0.0 | 16.2.5 | N/A |
| Base Score | 5.9 |
|---|---|
| Vector String | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H |
| Base Severity | Medium |
| Version | 3.1 |
| Attack Vector (AV) | NETWORK |