
CVE-2025-29927 (Next.js) のエクスプロイト - 認証バイパス

このリポジトリが気に入ったら?⭐ をお願いします!
教育および許可されたセキュリティ研究目的のみに使用してください。
@UNICORDev(@NicPWNs と @Dev-Yeoj による)
Next.jsは、フルスタックWebアプリケーションを構築するためのReactフレームワークです。バージョン1.11.4から12.3.5、13.5.9、14.2.25、15.2.3より前のバージョンでは、ミドルウェアで認証チェックが行われる場合、Next.jsアプリケーション内の認証チェックをバイパスすることが可能です。安全なバージョンへのパッチ適用が不可能な場合は、x-middleware-subrequestヘッダを含む外部ユーザーリクエストがNext.jsアプリケーションに到達するのを防ぐことを推奨します。この脆弱性は12.3.5、13.5.9、14.2.25、15.2.3で修正されました。
脆弱なNext.jsバージョンでは、ミドルウェアで認証チェックが行われる場合、x-middleware-subrequestヘッダを含むリクエストを送信することで、アプリケーション内の認証チェックをバイパスすることが可能です。このエクスプロイトは、対象のNext.jsバージョンを評価し、さまざまに細工されたヘッダを送信してミドルウェアバイパスを実現します。
python3 exploit-CVE-2025-29927.py -u <target-url>
python3 exploit-CVE-2025-29927.py -u <target-url> [-v <version>] [-m <middleware>]
python3 exploit-CVE-2025-29927.py -h
-u チェックおよびエクスプロイト対象のターゲットURL
-v Next.jsのバージョンを指定(既知の場合、例:15.2.0)[オプション]
-m ミドルウェアのファイル名/場所を指定(既知の場合、例:src/middleware)[オプション]
-h このヘルプメニューを表示。

Next.js バージョン 13.5.6
cd vulnerable-next-app
docker compose up
python3 exploit-CVE-2025-29927.py -u http://localhost:3000/admin