はじめに
この記事は Wano Group Advent Calendar 2025 の 14 日目の記事となります。
概要と経緯
2025 年 12 月初旬、React Server Components に複数の深刻な脆弱性が発見されました。
特に CVE-2025-55182 は CVSS 10.0(最高レベル)の認証前リモートコード実行(RCE)脆弱性であり、早急な対応が必要でした。
Dify は内部で React を使用しているため、これらの脆弱性の影響を受けます。
本記事では、脆弱性の内容と Dify のバージョン更新による対応方法を解説します。
何が起こったのか
React Server Components / Server Function
今回発生したのは React Server Components / Server Function 関連の脆弱性です。
React Server Components とは
サーバー側でレンダリングしてから結果を返す、新しいタイプのコンポーネントです。
不要な JS がブラウザに送られずクライアント側の処理が簡素化され、Web ページの初期表示や動作が高速化されます。SEO にも有利に働くようです。
Server Function とは
コンポーネントからサーバー上で実行できる非同期関数です。
例えばフォーム送信時、通常は API に向けて HTTP リクエストを送信しますが、この機能を用いると関数を呼ぶだけで処理が実行できます。
Dify 1.11.0 で解消した脆弱性
CVE-2025-55182 (RCE, Critical, CVSS 10.0)
概要: React Server Components における認証前リモートコード実行(RCE)脆弱性
深刻度: CRITICAL(CVSS 10.0)- 最高レベルの深刻度
影響を受けるバージョン:
- React 19.0.0
- React 19.1.0 〜 19.1.1
- React 19.2.0
影響を受けるパッケージ:
react-server-dom-parcelreact-server-dom-turbopackreact-server-dom-webpack
脆弱性の詳細:
この脆弱性は、React Server Components の Server Function エンドポイントに対する HTTP リクエストからのペイロードを安全でない方法でデシリアライズすることに起因します。攻撃者は認証なしでサーバー上で任意のコードを実行できる可能性があります。
リスク:
- 認証不要で攻撃可能
- サーバー上で任意のコード実行が可能
- データの窃取、改ざん、サービス停止など深刻な被害につながる可能性
Dify 1.11.1 で解消した脆弱性
CVE-2025-55184 (DoS, High, CVSS 7.5)
概要: React Server Components における認証前サービス拒否(DoS)脆弱性
深刻度: HIGH(CVSS 7.5)
影響を受けるバージョン:
- React 19.0.0 〜 19.0.1
- React 19.1.0 〜 19.1.2
- React 19.2.0 〜 19.2.1
影響を受けるパッケージ:
react-server-dom-parcelreact-server-dom-turbopackreact-server-dom-webpack
脆弱性の詳細:
この脆弱性は、Server Function エンドポイントへの HTTP リクエストからのペイロードを安全でない方法でデシリアライズすることに起因します。特定の悪意のあるリクエストにより、無限ループが発生し、サーバープロセスがハングアップします。これにより、以降の HTTP リクエストが処理されなくなる可能性があります。
リスク:
- 認証不要で攻撃可能
- サーバーがハングアップし、サービス全体が停止する可能性
- 他のユーザーへのサービス提供が不可能になる
CVE-2025-67779 (DoS, High, CVSS 7.5)
概要: CVE-2025-55184 の修正が不完全であったことによる DoS 脆弱性
深刻度: HIGH(CVSS 7.5)
影響を受けるバージョン:
- React 19.0.2
- React 19.1.3
- React 19.2.2
影響を受けるパッケージ:
react-server-dom-parcelreact-server-dom-turbopackreact-server-dom-webpack
脆弱性の詳細:
CVE-2025-55184 を修正したバージョン(19.0.2、19.1.3、19.2.2)において、特定のケースで依然として DoS 攻撃が可能であることが判明しました。修正が不完全であり、安全でないデシリアライズにより無限ループが発生し、サーバープロセスがハングアップする問題が残っていました。
リスク:
- CVE-2025-55184 と同様のリスク
- 一度修正されたと思われていた脆弱性の再発
CVE-2025-55183 (Source Code Exposure, Medium, CVSS 5.3)
概要: React Server Components におけるソースコード漏洩脆弱性
深刻度: MEDIUM(CVSS 5.3)
影響を受けるバージョン:
- React 19.0.0 〜 19.0.1
- React 19.1.0 〜 19.1.2
- React 19.2.0 〜 19.2.1
影響を受けるパッケージ:
react-server-dom-parcelreact-server-dom-turbopackreact-server-dom-webpack
脆弱性の詳細:
特定の構成の React Server Components において、細工された HTTP リクエストを脆弱な Server Function に送信することで、アプリケーション内の他のサーバー関数のコンパイル済みソースコードを返す可能性があります。
これにより、ビジネスロジックの漏洩や、ハードコードされた機密情報(シークレット)が漏洩する可能性があります。
リスク:
- サーバーサイドのビジネスロジックが漏洩
- セキュリティ上の秘密情報(API キー、認証ロジックなど)が露見する可能性
- 他の脆弱性を見つけるための情報源となる可能性
対応について
Community 版の Dify をセルフホストして利用していたため、docker-compose.yml で使用している image を更新します。
他にもバージョンが古いものがあればついでに更新しておきましょう。
まとめ
デプロイが簡単に済むようにスクリプトを組んでおいたので、今回は数分で対応できました。よかった...
弊社グループでは一緒に働くメンバーを募集中です、ご応募お待ちしています!