React2Shellはフロントエンド開発における「Log4jの瞬間」だ

攻撃者は、認証なしで任意のコードを実行できるFlightプロトコルの検証不備を悪用している。

攻撃者は、最近公表された最大深刻度の脆弱性(React Server Components(RSC)、Next.js、および関連フレームワークに影響)を悪用する手口をさらにエスカレートさせている。

金銭目的の攻撃者は、React2Shell(CVE-2025-55182)と呼ばれるこの欠陥を利用し、単一の悪意あるHTTPリクエストを通じて脆弱なサーバー上で任意のコードを実行する方法を見つけた。これにより、企業ネットワークへ迅速かつ容易に侵入し、ランサムウェアを展開できるようになると、サイバーセキュリティ企業S-RMの研究者およびMicrosoft Defender Security Research Team述べている

攻撃者は当初、この脆弱性を悪用してバックドア型マルウェアや暗号資産マイナーを導入していたが、この新手法はさらなるエスカレーションを示しており、専門家はフロントエンド開発における根本的なセキュリティ欠陥を露呈していると指摘する。

「長い間、私たちはフロントエンド開発を下流で低リスクな仕事として扱ってきました」とBeauceron SecurityのDavid Shipleyは語る。「これはアプリケーションのフロントエンドにとって、バックエンドにおけるLog4jと同じで、攻撃者にとって巨大な好機です。」

攻撃者がいかにして容易に「高い権限」のアクセスを得るのか

Reactは企業環境で広く利用されており、Microsoftの研究者はReactまたはReactベースのアプリケーションを実行している「数千の組織にまたがる数万台の個別デバイス」を特定している。

React2Shellは、React Server Components(RSC)、オープンソースフレームワークのNext.js、その他の関連フレームワークに影響する、事前認証のリモートコード実行(RCE)脆弱性だ。悪用が容易で、多数の露出システムを危険にさらし、実行に認証を必要としないため自動化攻撃に非常に弱いことから、共通脆弱性評価システム(CVSS)で10点と評価されている。

この脆弱性は、React開発ライブラリおよびNext.jsの中核機能であるFlightプロトコルに特に影響する。RSCには、Reactアプリがブラウザではなくサーバー上でロジックの一部を実行できるようにするパッケージ、フレームワーク、バンドラーが含まれている。

Flightはサーバーとクライアントの通信を可能にする。クライアントがデータを要求すると、サーバーはペイロードを受信して解析し、サーバー側ロジックを実行し、人間が読めるソフトウェアパッケージを返す。

React2Shell脆弱性により、影響を受けるRSCは受信ペイロードの検証に失敗し、脅威アクターがReactに正当なものとして認識される悪意あるコンポーネントを注入できる。攻撃者はHTTPリクエストを送ってサーバーをだまし、侵害されたコードを実行させることができ、未パッチのシステムに対して「高い権限」のアクセスを得られる可能性があると、S-RMの研究者は述べている。

React2Shellに関する初期報道によれば、国家支援の攻撃者は公表から数時間以内にこの脆弱性の悪用を開始した。初期の影響は、ネットワークへの永続的バックドアの設置と暗号資産マイニングの導入に限定されていたが、現在ではReact2Shellがランサムウェア攻撃における初期侵入ベクターとして利用されている。

S-RMは、公開Webサーバーを狙う「より高度ではないアクター」によって使用されている可能性が高いと指摘している。

Microsoftの研究者は、この脆弱性の危険性を警告している。HTTPリクエスト1回だけで悪用できること、デフォルト設定が脆弱であるため特別な設定が不要で攻撃者がユーザーのミスを待つ必要がないこと、事前認証で発生するため悪用に認証が不要であること、そして概念実証(PoC)エクスプロイトがほぼ100%の信頼性を示していること、である。

「ゼロトラストについて過剰に語られてきましたが、ここはまさにそれが役に立ったはずの好例です」とBeauceronのShipleyは語る。「Reactモデルには信頼とアクセスが組み込まれすぎていました。そして攻撃者はそれを悪用する方法を見つけたのです。」

確認すべきポイント

S-RMが追跡した攻撃では、脅威アクターが標的企業のネットワークへのアクセスを得た直後に、隠されたPowerShellコマンドを実行し、Cobalt StrikeのPowerShellステージャーをダウンロードしてコマンド&コントロール(C2)を確立した。これはレッドチームが常用する戦術であり、外部サーバーと通信できるようビーコンをインストールした。その後、Windows Defender Antivirusのリアルタイム保護を無効化した。

S-RMの研究者によれば、ランサムウェアのバイナリは「初期侵入から1分未満で」投入され実行された。攻撃者は暗号化されたファイルを改変し、復旧に関するメモを残し、標的の公開IPアドレスを含むテキストファイルを作成し、イベントログとバックアップスナップショットを消去した。

研究者は、他システムへの水平移動やデータ窃取の試みは観測しなかったと述べている。侵害されたサーバーは、発見の翌日に停止された。

S-RMは、RSCを使用する企業に対し、完全にパッチ適用されたバージョンであることを確認するよう助言している。しかし、Reactは、当初リリースされたパッチ(バージョン19.0.2、19.1.3、19.2.2)でさえ脆弱であると警告している。

パッチ適用に加えて、組織は以下を確認するためのフォレンジックレビューを実施すべきだ:

  • C2が実行された可能性を示す、異常な外向き接続;
  • アンチウイルスやエンドポイント保護の無効化、またはログの消去・改ざん;
  • 暗号資産マイナーを示唆する、リソース使用量の異常な急増;
  • NodeまたはReactに関連するバイナリから、メモリ上でファイルが実行されたことを示すWindowsイベントログ、またはエンドポイント検知・対応(EDR)テレメトリ。
  • 勧告に記載された侵害指標(IOC)(ホストベースおよびネットワークベースの双方)。

フロントエンドはもはや低リスクではない

この脆弱性は、これまで大きく見過ごされてきた開発環境における根本的なギャップを明らかにしていると、専門家は言う。

「Web開発では、自分たちに言い聞かせている危険な“心地よい嘘”があります。『フロントエンドは安全だ』。安全ではありません」と、WebエンジニアのLouis Phangは指摘する。彼はこれを「現代のサーバーがクライアントと会話する方法におけるロジックエラー」であり、標準的なWebリクエストを武器に変えてしまうものだと呼んだ。これは、開発者がセキュリティよりも信頼性、スケーラビリティ、保守性に注力してきた結果である。

長年、フロントエンド開発者がミスをしても起きるのは、ボタンの見た目が崩れる、レイアウトが壊れる、あるいは最悪の場合でも、攻撃者がWebページに悪意あるスクリプトを注入できるクロスサイトスクリプティング(XSS)が可能になる程度だったとPhangは述べる。だがReactがサーバー上でレンダリングされるようになると、フロントエンドコードが特権的アクセスを持ち、脆弱性がデータベース、鍵、データへのバックドアとして機能する。

「React2Shellは、フロントエンド開発者という役割が低リスクである時代の終わりを意味します」とPhangは主張した。

BeauceronのShipleyも同意し、サーバー側での重い処理が必要になったことでリスクは変わったのに、技術スタックはそれに応じて変化しなかったと指摘した。

「まず深刻かどうかで混乱があり、次に悪用がどれほど起きるかを過小評価する人がいて、そして今や“餌食の奪い合い”状態です」と彼は語った。

この脅威に対処するために技術環境を奮い立たせるのに、これほど時間がかかっているのは懸念すべきことだ。最終的には、セキュリティチームや予算の削減、そして開発者の燃え尽きの副作用かもしれないと彼は述べた。

「AIのおかげでゼロデイがさらに激化し、2026年に向けてこれは懸念すべきトレンドです」とShipleyは予測した。

この記事は元々InfoWorldに掲載された。

翻訳元: https://www.csoonline.com/article/4109221/react2shell-is-the-log4j-moment-for-front-end-development-2.html

ソース: csoonline.com