
CVE-2025-29927をシミュレートします。これは、内部のx-middleware-subrequest HTTPヘッダーを悪用してミドルウェアの認可をバイパスすることを可能にする、重大なNext.jsの脆弱性です。保護されたルートへの不正アクセスを実演し、緩和策を提供します。
このリポジトリは、Next.js の重大な脆弱性である CVE-2025-29927 の悪用を実演します。この脆弱性により、攻撃者はミドルウェアベースの認証チェックをバイパスできます。問題は、内部の x-middleware-subrequest HTTP ヘッダーの不適切な処理に起因し、保護されたルートへの不正アクセスを可能にします。
このプロジェクトは教育および研究目的のみを意図しています。明示的な許可なくシステムに対して不正に使用することは違法であり、非倫理的です。著者はこのコードの誤用について一切責任を負いません。
CVE-2025-29927 は、以下のバージョンより前の Next.js に影響を与えます。
この脆弱性は、攻撃者が HTTP リクエストに x-middleware-subrequest ヘッダーを含めると発生します。Next.js はこのヘッダーを内部サブリクエストとして解釈し、重要な認証チェックを含むミドルウェアの実行をスキップします。
git clone https://github.com/Knotsecurity/CVE-2025-29927-NextJs-Middleware-Simulation.git
cd cve-2025-29927-simulationnpm installnpm run dev
アプリケーションには /admin に保護されたルートがあり、ユーザー認証をチェックするミドルウェアによって保護されています。
/login ページにアクセスし、[email protected]:password123 でログインします。/admin ページにアクセスしてみてください。アクセス権限なしのエラーが表示されます。x-middleware-subrequest: middleware を追加してリクエストを送信します。/admin ページにアクセスできることが確認できます。この脆弱性から保護するには:
npm install next@latestx-middleware-subrequest ヘッダーを含むリクエストを拒否します。