0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

React Server Componentsの脆弱性を突くRCE攻撃を阻止方法

Posted at

2025年12月3日、Reactのメンテナーは、React Server Components (RSC) における認証なしで悪用可能な緊急の重要度を持つリモートコード実行(RCE)の脆弱性(CVE-2025-55182)を公開しました。動作するPoC(概念実証)が一般に公開されたため、Wallarmは直ちに顧客環境全体で広範な悪用試行の観測を開始しました。

CVE-2025-55182とは?

CVE-2025-55182は、CVSSスコア10.0と評価される認証不要のリモートコード実行(RCE)の脆弱性であり、すでに実環境(In the Wild)で活発に悪用されています。詳細については、こちらのアドバイザリを参照してください。この問題は、react-server-dom-webpackやreact-server-dom-parcel(バージョン 19.0.0, 19.1.x, 19.2.0)などのReactのサーバーサイド実装に影響を与えます。

この脆弱性は、RSCアクションのメタデータをデシリアライズする際の安全でないエクスポート解決に起因しています。具体的には、プロパティやプロトタイプの安全性チェックを行わずに moduleExports[metadata[2]] を返してしまうというものです。

一般公開されているPoCでは、攻撃者が悪意のあるRSCアクションペイロードを作成し、vm.runInThisContext(...) を介して任意のコード実行を直接引き起こせることを示しています。

CVE-2025-66478とは?

Reactに影響を与えるCVE-2025-55182に加え、この問題はNext.jsのデプロイメントにも影響を与えており、CVE-2025-66478として追跡されています。公開された情報によると、RSCのデシリアライズにおける同じ根本的な欠陥が、RSC対応コンポーネントやReactのserver-domパッケージを介したサーバーサイドレンダリングを使用しているNext.jsにも影響しています。

言い換えれば、CVE-2025-66478は独立した新しい脆弱性ではなく、CVE-2025-55182と同じRSCデシリアライズのバグがNext.jsを通じて顕在化したものです。したがって、RSCを使用しているNext.jsアプリケーションも脆弱であると見なし、同様のパッチや緩和策を適用する必要があります。

影響範囲とリスク

攻撃が成功した場合、以下のような影響が生じます:

  • Reactアプリケーションを実行しているサーバー上で、**完全なリモートコード実行(RCE)**を達成される。
  • ファイルの読み書きが可能になり、攻撃者が侵入を拡大したり、アクセスを持続させたり、追加のツールを展開したり、さらなる攻撃を仕掛けることが可能になる。
  • 環境の権限設定によっては、影響を受けるサービスの完全な制御を奪取される可能性がある。

このエクスプロイトは認証が不要であり、極めて簡単に兵器化でき、すでに一般に出回っているため、リスクは深刻かつ差し迫っています。

Wallarmはこの脆弱性からどのように保護するか?

Wallarmはすでに、CVE-2025-55182に関連する悪用試行に対して、設定不要の完全な保護(Out-of-the-Box Protection)を提供しています。

具体的には、Wallarmは情報公開直後から初期の悪用試行の検知とブロックを開始しました。さらにカバレッジを強化するため、この脆弱性で悪用される安全でないサーバーサイド実行パスを狙った試行を特定するための追加検知ルールを展開しました。これらのルールは、攻撃者が以下のような行動を試みる特徴的な挙動を捉えることに重点を置いています:

  • サーバーサイドでの評価やサンドボックスの回避(エスケープ)をトリガーする
  • 任意のシステムコマンドを実行する
  • 新しいプロセスの生成やシステムユーティリティの呼び出し
  • サーバー上の機密ファイルの読み書き
  • ユーティリティ関数を利用してアクションを拡大または連鎖させる

つまり、強化された保護機能は、攻撃者が脆弱なRSCデシリアライズフローを悪用して機密性の高いサーバーAPIに到達し、リモートコード実行を行う際のパターンに合わせて調整されています。

これらの保護は自動的に適用され、Wallarmのお客様側での対応は不要です。

PoCが公開されてから最初の2時間以内に、Wallarmは顧客インフラを標的とした4,100件以上の悪用試行を観測し、その数は増え続けています。これらの攻撃の大部分は完全に自動化されており、ボットネットや無差別的な(オポチュニスティックな)スキャナーが脆弱性を大規模に悪用しようとしたものでした。ほとんどの試行では、公開されたPoCで示されたパターンと酷似した、ほぼ同一のRCEペイロード構造が再利用されていました。そのような攻撃の例を以下の図に示します。

推奨される修正策

  • React server-domパッケージを直ちに以下の修正バージョンにアップデートしてください:
    19.0.1, 19.1.2, 19.2.1
  • React Server ComponentsやServer Actionsに依存しているアプリケーションコードをレビューし、サーバーサイドモジュールが不必要に公開されていないことを確認してください。
  • インフラ内で脆弱なReact Server Componentsのインスタンスが外部公開されていることが確認された場合、調査を開始し、侵害の可能性を評価するとともに、パッチ適用前に悪用が成功していないかを確認してください。

結論

現代のアプリケーションは、複雑なフレームワークや多数の依存関係が存在するエコシステムで稼働しており、いつでも新たな脆弱性が表面化する可能性があります。ゼロデイ攻撃のリスクは常に現実のものとなっています。このことは、新たな脅威の影響を最小限に抑えるために、多層防御(Defense-in-Depth)のセキュリティ戦略が必要であることを浮き彫りにしています。

Wallarmは以下の方法でこのアプローチを支援します:

  • WebおよびAPIのゼロデイ攻撃に対してプロアクティブに保護し、多くの場合、悪用試行を自動的にブロックします。
  • API Attack Surface Management (AASM) を通じて、公開されている、または保護されていないホストを特定し、攻撃者の機会を減らします。
  • Wallarmのリサーチチームが新たな脅威を継続的に監視し、製品の保護機能を強化することで、攻撃者の進化する手口に対応します。

ゼロデイの脅威が常にあり得る中で、Wallarmは組織が回復力を維持し、潜在的な攻撃の一歩先を行くための支援を行います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?