Critical Next.js Framework Vulnerability Let Attackers Bypass Authorization
2025/09/01 CyberSecurityNews — Next.js フレームワークに発見された、深刻な脆弱性 CVE-2025-29927 を悪用する攻撃者は、認証メカニズムを完全にバイパスするため、Web アプリケーションに深刻な脅威が生じている。この脆弱性は、Next.js ミドルウェア実行時の x-middleware-subrequest ヘッダの不適切な処理に起因し、機密性の高い管理領域や保護されたリソースへの不正アクセスを引き起こす可能性がある。

この問題の影響範囲は、複数の Next.js バージョンに及び、それぞれのバージョンごとに悪用の手法が異なる。
主なポイント
- CVE-2025-29927 を悪用する攻撃者は、x-middleware-subrequest ヘッダを介して Next.js の認証をバイパスする。
- このヘッダへのミドルウェア名の設定によりチェック回避が可能になる。
- 不正アクセス防止には、多層セキュリティの実装が必須である。
- セキュリティ研究者が実証したのは、HTTP ヘッダを操作することで認証/承認の制御が回避され、適切な資格情報なしで制限領域へのアクセスが可能になることだ。
Next.js フレームワークの脆弱性
NullSecurityX によると、この脆弱性の原因は Next.js のミドルウェア処理ロジックの扱い、特に x-middleware-subrequest ヘッダの扱いにあるという。本来において、このヘッダは内部サブリクエストを識別し、ミドルウェアの無限ループを防ぐ目的で設計されている。しかし実装に欠陥があるため、外部リクエストによる、このメカニズムの悪用が可能になっている。
脆弱なコード・パターンは、以下の通りである。

特定の x-middleware-subrequest ヘッダ値が、攻撃者により HTTP リクエストに取り込まれると、それを内部サブリクエストと誤認識する Next.js は、認証チェックを完全にスキップしてしまう。この悪用の方法は、Next.js の以下のバージョンに影響を及ぼす。
- バージョン 12.2 以前:”x-middleware-subrequest: pages/_middleware” により、pages ディレクトリのミドルウェアをバイパス可能。
- バージョン 12.2 以降:middleware.ts というミドルウェア・ファイルの場合に、ヘッダーの値が “x-middleware-subrequest: middleware” に変更される。
- バージョン 13.2.0 以降: 再帰に対する深度保護が実装されているが、ヘッダ内ミドルウェア名の重複により、根本的な脆弱性が残存する。
悪用シナリオ
攻撃者は単純な HTTP リクエストを作成するだけで、保護された管理パネルや機能にアクセス可能である。特に、JSON Web Token (JWT) や Cookie ベースの認証と併用する場合に、ヘッダ操作によりトークン検証が完全に回避されてしまう。また、自動化ツールを用いれば、複数の保護されたルートを体系的に検証できてしまう。
セキュリティ研究者たちが開発した PoC スクリプトは、悪意のヘッダを注入しながら、/admin、/dashboard、/settings などの一般的な管理エンドポイントを反復処理するものである。それにより、アプリケーション全体における、脆弱なアクセス・ポイントが迅速に特定されるという。
この脆弱性は、単なる認証バイパスに留まらない。Next.js ミドルウェアに依存するアプリケーションでは、適切な認証を必要としない攻撃者が、機密性の高いユーザー・データへのアクセス/アプリ・コンフィグの変更などを達成し、未認証の状態で管理機能の操作などを可能にする。
| Risk Factors | Details |
| Affected Products | Next.js versions ≤ 12.2 (pages/_middleware)Next.js versions ≥ 12.2 and < 13.2.0 (middleware.ts) Next.js versions ≥ 13.2.0 |
| Impact | Complete authorization bypass via middleware skip |
| Exploit Prerequisites | Ability to craft HTTP requests with custom x-middleware-subrequest header |
| CVSS 3.1 Score | 9.8 (Critical) |
推奨される対応
Next.js アプリケーションを運用する組織にとって必要なことは、このミドルウェアの実装を速やかに評価し、提供されているセキュリティ・パッチを適用することだ。この発見が浮き彫りにするのは、認証制御をミドルウェアのみに依存せず、複数のアプリケーション層にセキュリティを分散させる、多層防御戦略の重要性である。
Next.js フレームワークに存在する、認証バイパス脆弱性について説明する記事です。原因は、x-middleware-subrequest ヘッダの処理に欠陥があり、外部から細工されたリクエストを送信すると、本来内部用のサブリクエストと誤認されてしまうようです。その結果として、認証チェックがスキップされ、管理領域や保護されたデータへの不正アクセスが可能になります。なお、この脆弱性 CVE-2025-29927 ですが、2025年5月の時点で、ベンダーからパッチがリリースされ、GitHub には PoC が提供されているようですが、この記事のソースである NullSecurityX のポストは、8月31日のものです。ご利用のチームは、ご確認ください。よろしければ、2025/03/24 の「Next.js の深刻な認証バイパスの脆弱性 CVE-2025-29927 が FIX:旧バージョンのための回避策は?」も、ご参照ください。
You must be logged in to post a comment.