何が起きたか
RAGFlowのset_api_keyエンドポイントは、攻撃者が提供するbase_url値を検証なしで受け入れ、それに対してサーバーサイドのリクエストを発行します。これにより、共有ネットワークのバックエンドやクラウドメタデータサービスへの認証済みSSRFが可能になり、応答に返される詳細なアップストリーム例外テキストが内部サービスのフィンガープリントを漏えいさせます。
なぜ重要か
RAGプラットフォームは、インデックスするベクターデータベース、オブジェクトストレージ、モデルエンドポイントとともにVPC内に展開されることが頻繁にあります。このSSRFにより、認証済み(多くの場合低権限の)ユーザーがその内部ネットワークへのピボットと、メタデータを介したクラウド認証情報への経路を得ることができます。
攻撃経路
検証されていないbase_urlを使用したPOST /v1/llm/set_api_key(api/apps/llm_app.pyのset_api_key()によって処理)により、サーバーが攻撃者選択のホストにリクエストを送信します(CWE-918 SSRF)。クライアントに返されるエラーテキストは内部サービスのレイアウトを開示します。
影響を受けるシステム
RAGFlow 0.27.0より前のバージョン
緩和策
RAGFlow 0.27.0にアップグレードしてください。