React 19の重大な脆弱性、技術的に何が危険なのか

こんにちは、HappyLifeCreators(HLC)の橋本です。

先日、React 19において致命的な脆弱性が存在することが公表されました。

深刻度は「CVSS 10.0

定められた深刻度基準のうち最大を示しています。

React Server Componentsにおける脆弱性について(CVE-2025-55182)


HLCでは即座に情報をキャッチアップし、

速やかにバージョンアップによる対応を行うことで、現在のところ問題なく運用を継続しています。

ただし、この脆弱性は すでに攻撃が報告されている ことから、各プロジェクトでの迅速な対応が求められます。

本稿では、その脆弱性が具体的にどのようなものか、何が危険なのか を技術的視点で整理しました。


脆弱性の発生箇所:React Server Components (RSC)

どうもReact 19で導入された React Server Components(RSC) という仕組みが悪さをしたようです。
これはサーバー側で処理した結果をクライアントに渡し、クライアント側で結合して表示する仕組みです。

従来のクライアントレンダリングとは異なり、
サーバーで処理した 複数の部分結果をストリーミング形式で受け取る ために
React独自のプロトコルが使用されていることが原因でした。

//実際に使用されているプロトコル型ではなく、イメージです

1:I:{"title":"Hello"}
2:H:["div",null,1]
3:F:["serverFunction", ["arg1", "arg2"]]

↓ サーバーサイドでの復元

<div title="Hello">...</div>

独自のプロトコルをjsに復元する処理が今回の脆弱性におけるクリティカルな部分でした。

問題となるのは、復元を行うときにサーバー側で十分な検証・制限なく復元してしまっていたという点です。


何ができてしまうのか:任意コード実行(RCE)

この脆弱性により、攻撃者は 細工したリクエストを送るだけで、サーバー側で任意のJavaScriptコードを実行できてしまう。

例えば、

  • サーバーのログに意図しない文字列を出力させる(ほぼ確実に可能)
  • サーバー内部の環境変数や設定情報にアクセスできる(可能性: 高)
  • ファイルの読み書きやOSコマンドの実行など、
    サーバー権限下で任意の処理を実行できる(可能性: 中)

これは単なるバグではなく、RCE(リモートコード実行) と呼ばれる
非常に深刻なセキュリティ欠陥です。

特に、サーバー内部に直接アクセスできてしまうことがクリティカルだと考えています。


影響範囲

この脆弱性は 下記バージョンにてReact 19 の Server Components を利用しているプロジェクト が対象です。

・react 19のうち、19.2.2以前

・react-dom 19のうち、19.2.2以前

さらに、Next.js などのフレームワークで RSC を有効にしているケースは注意が必要です。


対策

Reactのバージョンを最新とすることで、この脆弱性は修正されています。

React19を使用しているすべてのプロジェクトを確認し、速やかにアップデートを行う必要があります。


まとめ

React 19 における CVE-2025-55182 は、
Server Components の独自データ処理の中で起きた部外者による任意コード実行につながる重大な欠陥 です。

  • CVSS: 10.0(最大)
  • 危険性: 認証不要で任意コード実行の可能性

HLC では早期対応により影響を回避しました。
これからも引き続き情報収集を続け、セキュリティリスクに対する対策を強化していきたいと考えています。


出典

コメントを送信