Langflowは、AIを活用したエージェントやワークフローの構築・デプロイのためのツールです。バージョン1.7.0より前のLangflowには「API Request」コンポーネントが存在し、フロー内で任意のHTTPリクエストを発行できます。このコンポーネントは、ユーザーが指定したURLを受け取り、正規化や基本的な形式チェックのみを実施した後、サーバー側のhttpxクライアントでリクエストを送信します。しかし、プライベートIPレンジ(127.0.0.1や10/172/192レンジ)、クラウドのメタデータエンドポイント(169.254.169.254)へのリクエストを遮断していません。また、レスポンスボディを結果として返します。/api/v1/runや/api/v1/run/advancedなどのフロー実行エンドポイントはAPIキーのみで呼び出せるため、攻撃者がフロー内のAPI RequestのURLを操作することで、非ブラインド型のSSRF攻撃を成立させて、サーバーのネットワークコンテキストから内部リソースへアクセスすることが可能となります。その結果、内部管理エンドポイントやメタデータサービス、内部DBやサービスへのリクエストやレスポンスを取得され、情報漏洩やさらなる攻撃の足掛かりとなる可能性があります。バージョン1.7.0でこの問題に対するパッチが提供されました。
|