Next.jsで認証を回避できる脆弱性(03/24 追記)
自前のサーバーの (これは間違い、すべての環境で影響があります。ただしVercelその他のPaaSではすでにパッチ適用済みです) Next.jsアプリケーションに認証を回避できる脆弱性が発見されました。
バージョン12から15まで影響があります。
Vercelからパッチのあたったバージョンが提供されているので速やかにアップデートしましょう。
公式のアナウンス↓

※ 2025/03/24追記
今回の脆弱性のポイントは2つあります。
- ログイン状態のチェックをミドルウェアで実行していた
- ミドルウェアの実行を回避する方法があった
脆弱性のあったバージョンではミドルウェアの再帰呼び出しを防ぐために x-middleware-subrequest
という独自のヘッダーを使っていました。curlなどを使ってこの x-middleware-subrequest
ヘッダを付与してNext.jsのサイトにアクセスすると、上記の認証を確認するミドルウェアを回避することができたため、認証が必要なページが誰でも見られる状態になっていたということです。
参考:Critical Next.js Vulnerability: How a Simple Header Bypasses Authentication (CVE-2025-29927) 🕵️
