何が起きたか
CVE-2026-58579 (CVSS 5.4 中) は 2026年7月2日に NVD に公開されました。RAGFlow 0.26.3 より前は、エージェントパイプライン DSL ノード名を HTML サニタイズなしで保存します。エージェント更新エンドポイントは JSON 有効性のために DSL を正規化しますが、ノード名は逐語的に保持します。その後、データフロー結果 Web UI はそれらの名前を生 HTML としてレンダリングし、保存型 XSS 条件を作成します (infiniflow/ragflow#16507 の GitHub issue で確認されています)。
なぜ重要か
RAGFlow は、広く使用されている オープンソースエンタープライズ RAG プラットフォームです。エージェントパイプライン UI の保存型 XSS により、パイプラインの作成/更新アクセス権を持つ攻撃者は、管理者セッションを含む他のユーザーのブラウザセッションで任意の JavaScript を実行できます。セッションハイジャック、認証情報盗用、または RAGFlow インスタンス内でのさらなる横方向移動が可能になります。マルチテナントまたはチームデプロイでは、1つの侵害されたパイプライン作成者がエージェント結果を閲覧するすべてのユーザーに影響を与える可能性があります。
攻撃経路
認証されたユーザーは、エージェント更新エンドポイント (PUT /v1/agents/<agent_id>) を介して細工された DSL を送信します。normalize_dsl() ハンドラは JSON 構造検証のみを実行し、ノード名を逐語的に保持します。ユーザーがデータフロー結果ページを表示すると、hooks.ts はノード名を生 HTML としてレンダリングし、ユーザーのブラウザセッションで挿入されたスクリプトを実行します。
影響を受けるシステム
RAGFlow (infiniflow/ragflow) < 0.26.3
緩和策
RAGFlow をバージョン 0.26.3 以降にアップグレードします。パッチコミット: https://github.com/infiniflow/ragflow/commit/572f1ea9f4eba6a60e64f7437dee60aa1c0913f1