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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-55182-React2Shell-Async-Scanner — CVE-2025-55182 / CVE-2025-66478 向け非同期 RCE スキャナー — React Server Actions 経由のプロトタイプ汚染 → コード実行。 | Kitploit
ツール/GitHubGitHub/inferiorak/cve-2025-55182-react2shell-async-scanner
偵察脆弱性スキャナー動的分析 (サンドボックス)コード分析エクスプロイトウェブアプリケーション悪用情報収集CTFペネトレーションテスト

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
学習と教育
ペイロード開発
GitHubinferiorak/cve-2025-55182-react2shell-async-scanner

CVE-2025-55182-React2Shell-Async-Scanner

CVE-2025-55182 / CVE-2025-66478 向け非同期 RCE スキャナー — React Server Actions 経由のプロトタイプ汚染 → コード実行。

リポジトリを見る
315ヶ月前未レビュー

⚡ React2Shell

CVE-2025-55182 / CVE-2025-66478 - 非同期RCEスキャナー

Python CVE CVE License Author Visitors

プロトタイプ汚染 → React Server Actions を介したリモートコード実行

非同期・バージョン優先・出力ベースのカナリア検出 - 盲目的な推測は不要


[!WARNING] 認可されたセキュリティ研究およびペネトレーションテスト専用です。 明示的な書面による許可なくシステムをスキャンすることは違法です。 本ツールの誤用による責任は作者にはありません。


目次

  • 脆弱性の概要
  • 影響を受けるバージョン
  • 検出の仕組み
  • インストール
  • 使用方法
  • オプションリファレンス
  • 出力と判定結果
  • ブラウザモード
  • バージョン検出パイプライン

脆弱性の概要

React Server Actions は、アクションデータをマルチパートフォームデータとしてサーバー側の実行コンテキストに直接渡します。影響を受けるバージョンの react-server-dom-webpack ではプロトタイプ汚染のサニタイズが不十分なため、攻撃者は以下を実行できます:

  1. Object.prototype を汚染する細工されたマルチパートペイロードを注入する
  2. 内部レスポンスオブジェクトの _response._prefix を上書きする
  3. 次の方法でサーバーに任意のシェルコマンドを実行させる:
    root@kitploit:~
    process.mainModule.require('child_process').execSync(cmd)
    

これにより、影響を受けるバージョンの React で React Server Actions を使用する、一般公開された Next.js アプリケーション上で認証なしのリモートコード実行 (RCE) が可能になります。

CVE-2025-55182 - 広範囲: React 19 パッケージ (react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack) に影響
CVE-2025-66478 - 限定的: / Server Action エンドポイントを介した Next.js 固有の悪用経路


影響を受けるバージョン


検出の仕組み

本スキャナーは出力ベースのカナリア検証を使用します。これは、誤検知ゼロで実際のコード実行を確認する最も信頼性の高い方法です:

root@kitploit:~
1.  POST /  with Next-Action header + multipart prototype-pollution payload
2.  Payload executes:  echo <random_canary>
3.  Vulnerable server throws NEXT_REDIRECT with base64(canary) in the URL
4.  Response header:   X-Action-Redirect: /login?a=<base64(canary)>
5.  Scanner decodes base64 → matches canary → RCE confirmed ✓

allow_redirects=False が重要です - 確認情報はリダイレクト先ではなくヘッダーに存在します。


インストール

root@kitploit:~
git clone https://github.com/InferiorAK/React2Shell
cd React2Shell

pip install -r requirements.txt

# Required only if using --browser mode for improved version detection:
playwright install chromium
playwright install-deps chromium

必要条件: Python 3.10+


使用方法

CVE-2025-55182 スキャナー - 広範囲 (React + Next.js)

root@kitploit:~
# Single target
python3 CVE-2025-55182_scanner.py -u https://target.com

# Scan a list of URLs
python3 CVE-2025-55182_scanner.py -f urls.txt

# Quiet mode - only print RCE / Vulnerable results
python3 CVE-2025-55182_scanner.py -f urls.txt -q

# Browser mode - headless Chromium for accurate version detection
python3 CVE-2025-55182_scanner.py -f urls.txt -b

# Full options - recommended for large-scale scanning
python3 CVE-2025-55182_scanner.py -f urls.txt -b -q -c 3 -t 20

オプションリファレンス

CVE-2025-55182 スキャナー


出力と判定結果

スキャンされた各ターゲットには、次のいずれかの判定が割り当てられます:

出力ファイル(outputs/ フォルダに保存され、自動的に作成されます):

  • outputs/vuln.txt — RCE および VULNERABLE の結果(実行のたびに追記)
  • outputs/unknown.txt — Unknown(バージョン不明)のターゲット。正確なバージョン検出のために -b を付けて再試行してください

ブラウザモード

なぜ 90% 以上のサイトでバージョンが unknown と表示されるのですか?

App Router アーキテクチャを使用する最新の Next.js 13+ は、フレームワークのバージョンを静的 HTML に埋め込むことはありません。そのバージョンは、実際のブラウザコンテキストで JavaScript が実行された後にのみ window.next.version に存在します。

--browser なしの場合:

  • バージョン検出は HTTP ヘッダー、__NEXT_DATA__、インラインスクリプト、ハッシュ化されたチャンクファイルに依存
  • App Router サイトはほぼ常に unknown を返す - バージョンベースのフィルタリングが回避される

--browser (-b) を使用する場合:

  • Playwright がヘッドレス Chromium を起動
  • ページの JavaScript が完全に実行される
  • スキャナーがライブ DOM から window.next.version を直接読み取る
  • 最新の Next.js サイトでバージョン精度が約 10% → ほぼ 100% に向上
root@kitploit:~
# Recommended with browser mode - reduce concurrency (browser pages are resource-heavy)
python3 CVE-2025-55182_scanner.py -f urls.txt -b -c 3

バージョン検出パイプライン

スキャナーは最大 7 段階を実行し、バージョンが見つかった時点で停止します:

root@kitploit:~
Stage 1 │ HTTP Response Headers
        │  X-Powered-By: Next.js X.Y.Z
        │  x-nextjs-*, x-next-version

Stage 2 │ Inline <script> Blocks (per-block scan)
        │  window.next = { version: "X.Y.Z", ... }
        │  version:"X.Y.Z", router: ...      ← minified bundle adjacent-key pattern
        │  "nextVersion":"X.Y.Z"
        │  Next.js vX.Y.Z                    ← plain text in meta / HTML comments
        │  __NEXT_VERSION__ = "X.Y.Z"

Stage 3 │ __NEXT_DATA__ JSON Blob
        │  Pages Router only - "version":"X.Y.Z" safe in this context

Stage 4 │ Hashed Chunk URLs (extracted from <script src>)
        │  /_next/static/chunks/*, /_next/static/app/*, /_next/static/runtime/*
        │  Fetches up to 12 real bundle files, scans for version strings

Stage 5 │ Fixed-name Fallback Chunks
        │  main.js, framework.js, webpack.js, _app.js, pages/_app.js

Stage 6 │ /package.json endpoint
        │  Dev mode / misconfigured servers expose this directly

Stage 7 │ Playwright Headless Browser  [--browser / -b only]
        │  Evaluates window.next.version after full JS execution
        │  Only triggered when stages 1–6 return "unknown"

免責事項

本ツールは教育および認可されたセキュリティ研究のみを目的として公開されています。
作者である InferiorAK は、誤用によって生じたいかなる損害にも責任を負いません。
所有していないシステムをテストする前に、必ず書面による許可を取得してください。


InferiorAK 作


私のリンク

Github Facebook Messenger Twitter YouTube

ツールをダウンロード
コンポーネント影響を受けるバージョン修正済みバージョン
React react-server-dom-*19.0.0, 19.1.0, 19.1.1, 19.2.019.0.1, 19.1.2, 19.2.1+
Next.js 16.x16.0.0 – 16.0.616.0.7+
Next.js 15.x15.0.0-15.0.4, 15.1.0-15.1.8, 15.2.0-15.2.5, 15.3.0-15.3.5, 15.4.0-15.4.7, 15.5.0-15.5.615.0.5+, 15.1.9+, 15.2.6+, 15.3.6+, 15.4.8+, 15.5.7+
Next.js 14.x14.3.0-canary.77+ カナリアビルドのみ安定版 14.x は全て - 影響なし
Next.js 13.x-影響なし
フラグ長い形式デフォルト説明
-u--url-単一ターゲットURL
-f--file-1行に1つのURLが含まれるファイル
-o--outputoutputs/vuln.txt脆弱なターゲットの出力ファイル
-U--unknown-outputoutputs/unknown.txtバージョン不明のターゲットの出力ファイル
-c--concurrency5同時HTTP接続数
-t--timeout15リクエストごとのタイムアウト(秒)
-q--quietオフRCE / VULNERABLE の行のみ表示
-b--browserオフPlaywright ヘッドレス Chromium によるバージョン検出のフォールバック
判定色意味
RCE🔴 赤X-Action-Redirect でカナリアを確認 - リモートコード実行が実証済み
VULNERABLE🟠 オレンジバージョンが脆弱な範囲内。RCEペイロードがエコーバックされなかった(WAF / 修正済み設定 / 誤ったエンドポイント)
Unknown🟡 黄Next.js は確認されたがバージョンを検出できず - それでも RCE を試行。ブラウザモードでの再試行用に outputs/unknown.txt に保存
Not Vulnerable🟢 緑バージョンが修正済みと確認された、または RCE が明示的に安全と返された
Skipped⚪ 白修正済みが確認されたバージョン、または Next.js 以外のサイト - PoC は試行されない
Error⚪ 白ホストに到達できない、または接続に失敗