Reactライブラリの重大な脆弱性は、IT部門がLog4jに対応したのと同様に、緊急事態として扱うべきだと専門家が警告しています。
アプリケーションインターフェースの構築にReact 19ライブラリを使用している開発者は、攻撃者が簡単に悪用できる重大な脆弱性のため、直ちに最新版へアップグレードするよう強く求められています。この脆弱性により、攻撃者がリモートで独自のコードを実行できてしまいます。
Wizの研究者は水曜日、React Server Components(RSC)のFlightプロトコルに存在する脆弱性がReact 19エコシステムおよびそれを実装しているフレームワークに影響を与えると発表しました。特に、Reactの上に構築された人気のフルスタック開発フレームワークであるNext.jsが該当し、これには別個のCVEが割り当てられています。
RSC Flightプロトコルは、React Server Componentsのクライアントとサーバー間の通信を担い、サーバーからクライアントへシリアライズされたコンポーネントツリーを送信します。
「この脆弱性は影響を受けるアプリケーションのデフォルト設定に存在しており、標準的なデプロイメントが直ちにリスクにさらされます」と警告しています。「深刻度が高く、悪用が容易なため、即時のパッチ適用が必要です。」
「弊社の検証では、create-next-appで作成され、本番用にビルドされた標準的なNext.jsアプリケーションが、開発者による特別なコード修正なしに脆弱であることが確認されました」とWizも警告しています。
Reactのサーバーパッケージに存在する問題はCVE-2025-55182として指定されており、これは論理的なデシリアライズ脆弱性です。これにより、サーバーがRSCペイロードを安全でない方法で処理してしまいます。Wizの研究者によると、サーバーが細工された不正なペイロードを受信した際、構造の検証に失敗します。これにより、攻撃者が制御するデータがサーバー側の実行ロジックに影響を与え、特権的なJavaScriptコードの実行につながります。
「簡単に言えば」とWizは質問に対して答えています。「サーバーがユーザーからの入力を過信し、それをコードのようなオブジェクトに処理してしまうため、攻撃者がコマンドを実行したり機密情報を漏洩させたりできるのです。」
影響を受けるのはReactバージョン19.0.0、19.1.0、19.1.1、19.2.0です。修正方法はReactの最新版へアップグレードすることです。
この脆弱性は脆弱なバージョンのReactを使用しているすべての開発フレームワークに影響しますが、Next.jsにおける問題はCVE-2025-66478として特定されています。
影響を受けるのはApp Routerを使用しているNext.js 15.xおよび16.xです。こちらも修正方法はNext.jsの最新版へアップグレードすることです。
Reactのブログでは、ReactおよびNext.jsの詳細なアップグレード手順が提供されています。
「重大な脆弱性」
「これらの脆弱性が機能するために必要な設定は非常に一般的です」とWizは質問に対して答えています。「それらをブロックするために必要な機能を無効化しているケースは非常に稀です。実際、我々はそのようなケースを見つけることができませんでした。」
Wizによると、現在クラウド環境の39%がNext.jsやReactベースの他のWebフレームワークを使用しています。
Johannes Ullrich氏(SANS Institute研究部門長)はInfoWorldに対し、RSCは特にNext.jsフレームワーク(デフォルトでRSCを実装)を使用する際に広く利用されていると述べました。
「これは非常に深刻な脆弱性です」と彼はメールで述べています。「1日以内に公的なエクスプロイトが出回ると予想しており、アプリケーションは迅速にパッチを適用する必要があります。Cloudflareなど一部のWebアプリケーションファイアウォールベンダーは、潜在的なエクスプロイトからアプリケーションを保護するルールをすでに実装しています。しかし、これらのシステムで保護されているWebアプリケーションであっても、攻撃者がこれらの保護メカニズムを回避する方法を見つける可能性があるため、パッチを適用すべきです。」
Reactの脆弱性を悪用するには、脅威アクターが特別に細工したHTTPリクエストをサーバーエンドポイントに送信するだけで十分です。セキュリティ上の理由から、Wizの研究者はその手法の詳細を明らかにしていません。しかし、同様の脆弱性では、攻撃者がサーバー上でリモートコード実行を利用し、通常はsliverのような既知のC2フレームワークですが、場合によってはよりカスタムなペイロードをダウンロード・実行する高度なトロイの木馬をサーバーに仕込むことがあります。「重要なのは、このようなRCE(リモートコード実行)があれば、攻撃者は事実上何でもできてしまうということです」と研究者は述べています。
CISOや開発者は、これら2つの脆弱性を「クリティカル以上」として扱うべきだと、カナダ拠点のセキュアコーディングトレーナーTanya Janca氏は述べています。実際、彼女はメールで、情報セキュリティの専門家がLog4jの脆弱性に対応したのと同じように、すべてのアプリケーションを徹底的に調査すべきだと述べました。「これ以上に深刻なWebアプリケーションのセキュリティ欠陥はありません」と彼女は述べ、「たとえ現時点で野放しに悪用されていなくても」です。
CSOおよび開発者へのアドバイス
Janca氏は開発者に以下を推奨しています:
- ReactまたはNext.jsを使用しているすべてのアプリをリストアップする;
- 既知の脆弱バージョンを使用しているか確認する:React: 19.0 / 19.1.0 / 19.1.1 / 19.2.0、およびNext.js: 14.3.0-canary.77以降のcanaryリリース、15.x/16.x
該当する場合は安全なバージョンへアップグレードする:- React: 19.0.1、19.1.2、19.2.1以上
- Next.js: 15.0.5、15.1.9、15.2.6、15.3.6、15.4.8、15.5.7、16.0.7以降;Next.js 14.3.0-canary.77またはそれ以降のcanaryリリースの場合は、最新の安定版14.xリリースにダウングレードする;
- ソフトウェア構成解析ツールでスキャンし、予期せぬ場所で脆弱バージョンが使われていないか確認する;
- 何らかの理由でアップグレードできない場合は、そのアプリが安全でないとみなし、可能であれば停止する。停止できない場合は爆弾が爆発したかのように扱い、ネットワークファイアウォールで隔離し、監視し、セキュリティチームと連携する;
- 情報セキュリティ担当者はアプリのログを読み、異常な挙動を探す;
- セキュリティチームへの情報共有を怠らない;
最も重要なのは、これを緊急事態として扱うことだと彼女は述べています。
この記事はもともとInfoWorldに掲載されました。