
セキュアプログラミングクラス向けCVE-2025-29927のデモ
これは、特定のヘッダーを使用してミドルウェアをバイパスできるようにした、Next.js の重大な脆弱性である CVE-2025-29927 のデモです。
ヘッダー x-middleware-subrequest は、ミドルウェアの無限ループを防ぐためのものでした。リクエストがミドルウェアに到達するたびに、このヘッダーに値 middleware が追加され、5回追加されるとミドルウェアはリクエストを通過させます。値 middleware:middleware:middleware:middleware:middleware を指定したリクエストを送信すると、ミドルウェアをバイパスできます。
リポジトリをクローンしてプロジェクトをビルドした後、開発サーバーを実行します:
npm run dev
ブラウザでリンク http://localhost:3000 を使用してアプリケーションにアクセスします。
このアプリケーションの目標は /cool ページに到達することです。送信ボタンはこのページにつながりますが、リクエストはミドルウェアによってインターセプトされ、/uncool にリダイレクトされます。
次に、細工したヘッダーを付けて同じリクエストを送信すると、ミドルウェアは /cool ページへの通過を許可します。これはブラウザの開発者ツールで実行できます。
