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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-55182 — CVE-2025-55182(React2Shell)に関する修士論文研究。6つの攻撃シナリオ(RCE、データ流出、改ざん)、インタラクティブリバースシェル、React Server Componentsのプロトタイプ汚染と安全でないデシリアライゼーションを研究するための完全な脆弱ラボを備えたモジュール式エクスプロイトフレームワーク。 | Kitploit
ツール/GitHubGitHub/devianntsec/cve-2025-55182
エクスプロイトフレームワーク脆弱性分析エクスプロイトウェブアプリケーション悪用ポストエクスプロイトペネトレーションテスト論文と研究学習と教育リモートアクセスツールペイロード開発ラボと実践
154ヶ月前未レビュー
GitHub
devianntsec/cve-2025-55182

CVE-2025-55182

CVE-2025-55182(React2Shell)に関する修士論文研究。6つの攻撃シナリオ(RCE、データ流出、改ざん)、インタラクティブリバースシェル、React Server Componentsのプロトタイプ汚染と安全でないデシリアライゼーションを研究するための完全な脆弱ラボを備えたモジュール式エクスプロイトフレームワーク。

リポジトリを見る

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2025-55182 — React2Shell: 高度なエクスプロイトと修士論文研究

Platform Language License: MIT Research CVSS

信頼できないデータのデシリアライズ + React Server Components におけるプロトタイプ汚染
Next.js Server Actions を介した認証なしリモートコード実行
影響を受けるバージョン: React 19.0.0 - 19.2.0 · パッチ: React 19.0.1 / 19.1.2 / 19.2.1 (2025年12月3日)


高度なエクスプロイトのデモ - 脆弱なNext.jsアプリケーションに対するRCE基本コマンド、インタラクティブシェル、複数の攻撃ベクトル

説明

このリポジトリは、React Server Components における の 脆弱性 に関する私の を含んでいます。

Critical (CVSS v3.1: 10.0)
リモートコード実行
CVE-2025-55182
修士論文研究

この脆弱性は、React Flight プロトコルにおける 安全でないデシリアライズ機構 に起因します。Server Actions を処理する際、Next.js は適切な検証を行わずに受信したマルチパートペイロードをデシリアライズします。攻撃者は、プロトタイプチェーンを汚染し、Function コンストラクタ(さらに child_process.execSync())を介してサーバー上で実行される任意のJavaScriptを注入する悪意あるペイロードを作成できます。

CVE-2025-66478 に関する注記: Vercel は、この同じ脆弱性の Next.js 固有の影響を追跡するために並行して CVE を発行しました。Next.js は React をベンダリングされた形でバンドルしているため、多くの依存関係スキャナはこれを自動的に脆弱として検出しません。US National Vulnerability Database (NVD) は公式に CVE-2025-66478 を CVE-2025-55182 の重複として却下しましたが、Vercel のセキュリティアドバイザリでは引き続き参照されています。

後続の脆弱性: React チームはその後、最初のパッチバージョン(19.0.1、19.1.2、19.2.1)に存在する追加の2つの問題を開示しました: CVE-2025-55184 (サービス拒否、CVSS 7.5) および CVE-2025-55183 (ソースコード漏洩、CVSS 5.3)。ユーザーは 19.0.2、19.1.3、または 19.2.2 にアップグレードして3つすべてに対処する必要があります。

私の貢献

側面説明
4つの攻撃モジュールプロジェクトの削除、Webサイトの改ざん、環境変数の窃取、サーバーのシャットダウン
インタラクティブシェル特殊コマンドと復元機能を備えた持続的シェル
安定した流出HTTPヘッダーサイズ制限を回避するための1行ずつの読み取り
復元スクリプト攻撃後の安全な実験室復元
学術文書根本原因、ペイロードの内訳、脆弱性のタイムライン

リポジトリ構造

root@kitploit:~
CVE-2025-55182/
├── README.md                        # このファイル
├── LICENSE                          # MITライセンス
│
├── exploit/
│   ├── exploit-explanation.md       # エクスプロイト使用法のドキュメント
│   └── react2shell.py               # メインエクスプロイト — 4つの攻撃モジュール + インタラクティブシェル
│
├── vulnerable-app/                  # 脆弱なNext.jsアプリケーション
│   ├── README.md                    # 元のvulnappクレジット
│   ├── package.json                 # React 19.0.0 (脆弱)
│   ├── app/                         # アプリケーションのソースコード
│   ├── curl_id.sh                   # 元のエクスプロイトスクリプト (by zack0x01)
│   └── scripts/
│       └── restore.sh               # 復元スクリプト (私の貢献)
│
└── docs/
    ├── screenshots/                 # エクスプロイテーションデモ
    │   ├── 01-app-initial.png
    │   ├── 02-rce-basic.png
    │   ├── 03-interactive-shell.png
    │   ├── 04-no-payload.png
    │   ├── 05-delete-result.png
    │   ├── 06-deface.png
    │   ├── 07-shutdown-servers.png
    │   ├── 08-restore-from-script.png
    │   └── 09-restore-from-interactive-shell.png
    │
    └── analysis/
        ├── 01-root-cause.md         # 脆弱性の根本原因分析
        ├── 02-payload-breakdown.md  # ペイロード構造と実行フロー
        └── 03-timeline.md           # CVE タイムライン

クイックスタート

前提条件

  • Node.js 18+ および npm
  • Python 3.9+
  • 脆弱なNext.jsアプリケーション(vulnerable-app/ に同梱)
  • テストには隔離されたVMを推奨

ステップ1 — 脆弱なアプリケーションを起動

root@kitploit:~
cd vulnerable-app
npm install --legacy-peer-deps
npm run dev
# App available at http://localhost:3000

ステップ2 — エクスプロイトを実行

root@kitploit:~
cd ../exploit

# ターゲットが脆弱かどうかを確認
python3 react2shell.py -u http://localhost:3000 --check

# 単一コマンドを実行
python3 react2shell.py -u http://localhost:3000 -c "whoami"

# インタラクティブシェルモード
python3 react2shell.py -u http://localhost:3000 -i

攻撃モジュール

モジュールコマンド説明影響
プロジェクト削除--delete-projectsダッシュボードからすべてのプロジェクトを削除データ破壊
改ざん--deface "メッセージ"メインページを置き換え改ざん
環境変数窃取--steal-env環境変数を窃取流出
サーバーシャットダウン--shutdown-serversすべてのサーバーをシャットダウンサービス拒否

技術概要

脆弱性の根本原因

React Server Components は、カスタムのシリアライゼーション/デシリアライゼーション機構(「Flight」プロトコル)を使用してコンポーネントデータをサーバーからクライアントに送信します。サーバーアクションを処理する際、サーバーは 適切な検証なし で受信ペイロードをデシリアライズします。

コアとなる欠陥は行動上の信頼です。デシリアライザは typeof obj.then === 'function' をチェックしてPromiseを識別しますが、そのプロパティがオブジェクトに直接属していることを検証しません。これにより、攻撃者は Object.prototype.then を汚染し、すべてのプレーンオブジェクトをthenableに見せかけることができます。

攻撃者は、以下のことを行う悪意のあるペイロードを作成できます:

  1. __proto__:then を使用して プロトタイプチェーンを汚染
  2. $1:constructor:constructor を介して解決を Function コンストラクタに リダイレクト
  3. new Function(_prefix) を介して 任意のJavaScriptを実行
  4. process.mainModule.require('child_process').execSync() を介して システムコマンドを実行
  5. X-Action-Redirect HTTP応答ヘッダーを介して 出力を流出
root@kitploit:~
User-mode (unauthenticated)
  │
  ├─ POST / (Next.js Server Action endpoint)
  │    ├─ Headers: Next-Action: x
  │    └─ Multipart body with malicious JSON
  │
  └─ React Flight deserializer processes payload
       └─ Prototype pollution via __proto__:then
            └─ Function constructor reached via $1:constructor:constructor
                 └─ new Function(_prefix) executes attacker's JavaScript
                      └─ execSync() runs system command
                           └─ Output embedded in NEXT_REDIRECT error
                                └─ Next.js converts to X-Action-Redirect header

影響範囲の明確化

この脆弱性は、React Server Components とともに App Router(Next.js 14以降のデフォルト設定)を使用する任意のNext.jsアプリケーションに影響します。明示的に定義された Server Actions は 必須ではありません。影響を受ける RSC パッケージが存在するだけで十分です。

なぜ重要なのか

この脆弱性により、認証されていない攻撃者は以下を行うことができます:

  • サーバー上で任意のコマンドを実行
  • 環境変数と認証情報を窃取
  • アプリケーションデータを変更または削除
  • さらなる攻撃の踏み台としてサーバーを使用

攻撃チェーン

root@kitploit:~
1. [ANY]    任意の Server Action エンドポイントに細工したマルチパート POST を送信
2. [SERVER] React デシリアライザが悪意のある JSON を処理
3. [SERVER] プロトタイプ汚染が Object.prototype.then を汚染
4. [SERVER] プレーンオブジェクトが thenable として扱われ、Function コンストラクタに到達
5. [SERVER] new Function(_prefix) が攻撃者の任意の JavaScript を実行
6. [SERVER] execSync() がシステムコマンドを実行、出力をキャプチャ
7. [SERVER] 出力が NEXT_REDIRECT エラーダイジェストに埋め込まれる
8. [SERVER] Next.js が URL エンコードされた出力を含む X-Action-Redirect ヘッダーを返す
9. [ATTACKER] ヘッダーからコマンド結果を抽出し URL デコード

実証テスト

すべてのテストは、Kali Linux 2026.1、Next.js 15.0.0、React 19.0.0 を搭載した隔離された VirtualBox VM で、ネットワーク露出なしで実施されました。

攻撃モジュール結果備考
コマンド実行✅ RCE 確認whoami、id、uname -a が確実に動作
プロジェクト削除✅ ダッシュボードが変更プロジェクトは削除され、React 構造は保持
改ざん✅ Webサイト改ざんカスタムメッセージが表示
環境変数窃取✅ 環境変数を抽出stolen_env.txt に保存
サーバーシャットダウン✅ 全サーバーが停止表示UI更新、React は機能
インタラクティブシェル✅ 持続的シェル特殊コマンド利用可能
復元✅ 元の状態に復元restore.sh スクリプト経由

決定性: 確率的なエクスプロイト(例: ヒープスプレー)とは異なり、CVE-2025-55182 は完全に決定的です — 適切にフォーマットされた HTTP POST リクエストは、React 19.0.0–19.2.0 で React Server Components が有効な未パッチのシステム上で、確率 1 で RCE を生成します。


技術文書

文書説明
根本原因分析React Flight におけるデシリアライズの欠陥とプロトタイプ汚染
ペイロード分析悪意のある JSON 構造の一行ごとの分析
CVE タイムライン発見、開示、パッチの時系列

学術的背景

この研究は、サイバーセキュリティ修士論文(UCAM — Campus Internacional de Ciberseguridad)の一部であり、複数の環境における N-Day 脆弱性を分析しています。

この CVE は、論文内の モダン JavaScript フレームワーク ベクトルを表し、以下を示しています:

  • React Server Components におけるデシリアライズ脆弱性
  • RCE プリミティブとしてのプロトタイプ汚染
  • Next.js Server Actions のエクスプロイト
  • Node.js 環境におけるポストエクスプロイト技術
  • 安全な実験室復元方法論

キーワード: RCE · プロトタイプ汚染 · デシリアライズ · React · Next.js · Server Actions · CVE-2025-55182


著者

Annais Molina (devianntsec) — セキュリティ研究者 | サイバーセキュリティ修士(UCAM)

GitHub LinkedIn Blog Email


謝辞

  • @zack0x01 — 元の脆弱なアプリケーション
  • Lachlan Davidson (Carapace) — 元の脆弱性発見と責任ある開示
  • AssetNote — react2shell-scanner 検出ツール
  • Moritz Sanft — 最初の動作する公開 PoC(開示から約30時間後)
  • maple3142 — 元の報告者の公開 PoC(2025年12月5日)

ライセンス

MIT ライセンス — LICENSE をご覧ください。


法的免責事項

このリポジトリは、学術的な修士論文の一環として、教育およびセキュリティ研究目的のみ で提供されています。すべてのテストは、ネットワーク露出のない隔離された仮想マシン上で実施されました。所有しているシステム、または明示的な書面によるテスト許可を得たシステムでのみ使用してください。許可なくシステムに対して使用することは違法であり、刑事訴追の対象となる可能性があります。

© 2026 Annais Molina · サイバーセキュリティ修士論文
UCAM サンアントニオ・デ・ムルシアカトリック大学 · 国際サイバーセキュリティキャンパス
ツールをダウンロード