React Router の脆弱性 CVE-2025-43864/43865 が FIX:ポイズニングとスプーフィング

React Router Vulnerabilities CVE-2025-43864 and CVE-2025-43865 Expose Web Applications to Attack

2025/04/28 SecurityOnline — React Router チームが公開したのは、フレームワーク・モードで実行されるアプリケーションに影響を及ぼす、2つの脆弱性 CVE-2025-43864/CVE-2025-43865 に対処するためのアドバイザリである。React Router は、約 1,400万回/週のペースでダウンロードされ、広範なアプリケーションで利用されるため、これらの脆弱性は整合性と可用性に深刻なリスクをもたらすと懸念されている。

CVE-2025-43864 (CVSS:7.5)
強制 SPA モードによるキャッシュ・ポイズニング

X-React-Router-SPA-Mode というヘッダーを取り込んだ、細工されたリクエストを送信することで、SSR (server-side rendered) アプリケーションの、SPA (single-page application) モードへの強制的な切り替えが、攻撃者に許されることを研究者たちは発見した。

React Router のアドバイザリには、「SSR を使用するアプリケーションが、強制的に SPA モードへと切り替えられると、ページの完全な破損というエラーが発生する」と記されている。

キャッシュ機構が有効化されている場合には、破損したレスポンスが保存され、キャッシュ・ポイズニングが発生し、正当なユーザーのアクセスが妨害される可能性が生じる。

CVE-2025-43865 (CVSS:8.2)
プリレンダリング・データ・スプーフィング

この2つ目の脆弱性を悪用する攻撃者は、悪意の X-React-Router-Prerender-Data ヘッダーを挿入することで、プリレンダリング・データを改竄できる。このヘッダーは、JSON オブジェクトを受け入れるが、それが正しく構造化されている場合には、ユーザーに届く前のページ・データの改竄が可能になる。

アドバイザリには、「リクエストにヘッダーを追加することで、プリレンダリング・データの改竄が可能になる。その悪意のコンテンツを完全に偽装する攻撃者は、HTML に渡されるデータ・オブジェクトの、すべての値を変更できる」と記されている。

React Router vulnerability, cache poisoning
2つの脆弱性を悪用することで、以下の攻撃が可能になる:
  • キャッシュ・ポイズニング攻撃
  • コンテンツ改竄
  • クライアント側のデータ処理に応じて、潜在的な蓄積型 XSS 脆弱性が発生する場合もある。
  • 影響範囲と影響を受けるバージョン:React Router バージョン 7.0 以上/7.5.1 以下
  • 修正バージョン:バージョン 7.5.2 では、上記の2つの脆弱性が修正されている。

React Router に、2件の深刻な脆弱性が発生しています。ご利用のチームは、アップデートをお急ぎください。なお、同製品の前回の脆弱性は 2025/04/03 の「React Router の CVE-2025-31137 が FIX:Web App キャッシュ汚染や WAF バイパスなどの恐れ」となります。よろしければ、Router で検索と併せてご参照ください。