技術的な説明
RAGFlow のプロンプトジェネレータ (rag/prompts/generator.py) における Jinja2 Server-Side Template Injection (SSTI) 脆弱性により、通常登録された無料アカウントを含むあらゆる認証済みユーザーがホストサーバー上で任意の OS コマンドを実行できます。悪用には、ユーザーが DuckDuckGo + LLM コンポーネントチェーンを含む Canvas ワークフローを作成またはインポートするだけで十分です。インポートのみでコード実行が引き起こされます。CVSS スコアは 9.9 (Critical) です。RAGFlow は GitHub スター 52,000 以上のオープンソース RAG エンジンです。
攻撃経路
認証済みウェブユーザーが細工された Canvas ワークフローを作成またはインポートします。プロンプトジェネレータは Jinja2 テンプレートをサンドボックスなしでレンダリングし、Jinja2 の `cycler.__init__.__globals__` チェーンを通じて Python の `os.popen` 経由での OS コマンドインジェクションを許可します。管理者特権は不要で、登録済みユーザーであれば十分です。
影響を受けるシステム
RAGFlow バージョン 0.24.0 以前 (オープンソース RAG エンジン、GitHub の infiniflow/ragflow)。自己ホスト型デプロイメントのみ。クラウド管理型デプロイメントはプロバイダーの構成によって異なる場合があります。
緩和策
パッチ適用済みバージョンにアップグレードしてください (GHSA-wpg4-h5g2-jxm6 を参照)。即座のアップグレードが不可能な場合は、信頼できないユーザーによる Canvas ワークフロー作成を無効にし、RAGFlow サーバーにネットワークレベルの隔離を適用し、RAGFlow プロセスが root として実行されないよう最小権限の原則を適用してください。ragflow プロセスからの異常なサブプロセス呼び出しについてサーバーログを確認してください。