React Router およびRemixに、Webサーバー上の機密ファイルへ攻撃者がアクセスしたり改ざんしたりできる可能性がある重大な脆弱性が発見されました。
この欠陥は複数のパッケージに影響し、深刻度は「Critical(重大)」、CVSSスコアは8.8/10と評価されています。
| 項目 | 詳細 |
|---|---|
| CVE ID | CVE-2025-61686 |
| 深刻度 | Critical |
| CVSSスコア | 8.8/10 |
脆弱性の概要
このセキュリティ問題は、createFileSessionStorage()関数における未署名Cookieの不適切な取り扱いに起因します。
開発者が未署名Cookieを用いてユーザーセッションを管理している場合、攻撃者はディレクトリトラバーサルのシーケンス(例:../)を含む悪意のあるセッションCookieを作成し、意図されたセッションディレクトリの外にあるファイルを読み書きできる可能性があります。
この脆弱性は以下のパッケージに影響します:
- @react-router/node (バージョン7.0.0〜7.9.3)
- @remix-run/node (2.17.1までのバージョン)
- @remix-run/deno (2.17.1までのバージョン)
この脆弱性を悪用した攻撃者は、設定ファイル、ソースコード、その他の重要なシステムデータなど、サーバー上の機密ファイルにアクセスできる可能性があります。
こうした攻撃が成功するかどうかは、Webサーバープロセスに付与されているファイルシステム権限に依存します。
ただし、大きな制約もあります。攻撃者はアプリケーションを通じて任意のファイルを直接読み取ることはできません。
代わりに、想定されるセッションファイル形式に一致するファイルを参照するようなセッションCookieを作成する必要があります。
一致するファイルが見つかった場合、そのデータがサーバー側セッションに読み込まれ、GitHubが報告しているように、標準的なアプリケーションロジックを通じて露出する可能性があります。
さらに、攻撃者は意図されたディレクトリの外にあるファイルへ悪意のあるデータを書き込むこともでき、重要な設定ファイルや実行可能ファイルが上書きされた場合、コード実行やシステム侵害につながる可能性があります。
影響を受けるパッケージを使用している開発者は、修正済みバージョンへ直ちにアップグレードしてください:
- @react-router/node:バージョン7.9.4以上へ更新
- @remix-run/node:バージョン2.17.2以上へ更新
- @remix-run/deno:バージョン2.17.2以上へ更新
最も効果的な緩和策は署名付きCookieを実装することです。これにより暗号学的にセッションの完全性を検証でき、攻撃者がCookie内容を改ざんするのを防げます。
翻訳元: https://gbhackers.com/critical-react-router-flaws/