5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

React Server Componentsの脆弱性の解説とDifyにおける対応

5
Last updated at Posted at 2025-12-13

はじめに

この記事は 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-parcel
  • react-server-dom-turbopack
  • react-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-parcel
  • react-server-dom-turbopack
  • react-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-parcel
  • react-server-dom-turbopack
  • react-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-parcel
  • react-server-dom-turbopack
  • react-server-dom-webpack

脆弱性の詳細:

特定の構成の React Server Components において、細工された HTTP リクエストを脆弱な Server Function に送信することで、アプリケーション内の他のサーバー関数のコンパイル済みソースコードを返す可能性があります。
これにより、ビジネスロジックの漏洩や、ハードコードされた機密情報(シークレット)が漏洩する可能性があります。

リスク:

  • サーバーサイドのビジネスロジックが漏洩
  • セキュリティ上の秘密情報(API キー、認証ロジックなど)が露見する可能性
  • 他の脆弱性を見つけるための情報源となる可能性

対応について

Community 版の Dify をセルフホストして利用していたため、docker-compose.yml で使用している image を更新します。

langgenius/dify-web:1.11.1

langgenius/dify-api:1.11.1

他にもバージョンが古いものがあればついでに更新しておきましょう。

まとめ

デプロイが簡単に済むようにスクリプトを組んでおいたので、今回は数分で対応できました。よかった...


弊社グループでは一緒に働くメンバーを募集中です、ご応募お待ちしています!

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?