ホームへ戻る

GitHub Repo

Langflow 1.12.6でツール探索経路を修正、MCPツール一覧時に保存済みコンポーネントコードが実行されなくなる

Langflowは10月13日に1.12.6をリリースし、MCPツール一覧とA2A agent cardの入力スキーマ生成時にコンポーネントコードが実行される問題を修正した。修正には実環境での再現と回帰テストが含まれる。公開フローのデプロイ担当者は、カスタムコンポーネントと匿名アクセスの設定を引き続き確認する必要がある。

Photo by Syohei Arai(talk) · CC BY-SA 3.0 · Image source
zh-Hant

Langflowは10月13日、エージェントのツール探索に関する修正を含む 1.12.6 をリリースした。フローの入力スキーマを生成する際にコンポーネントをインスタンス化し、保存済みコードを実行することがなくなった。修正は10月8日にマージされており、ここ2日間の新たな進展は今回の正式リリースだ。リリースノート

問題は共通の json_schema_from_flow 経路にあった。MCPの tools/list とA2A agent cardはいずれもこの経路を使って入力スキーマを取得する。旧実装ではフローグラフの構築時にコンポーネントをインスタンス化していたため、モジュールレベルのコードまで実行される可能性があった。メンテナーによると、匿名で共有プロジェクトのツール一覧を要求すると、プロジェクト所有者の権限で処理されていた。また、公開ツールの呼び出しには既存のカスタムコードチェックがあったものの、一覧取得経路には適用されていなかった。修正の分析

新しい実装では instantiate_components=False を設定し、ノードの種類と保存済みテンプレートから入力フィールドを取得する。メンテナーの報告では、修正前は匿名でツール一覧を取得するとテスト用のマーカーファイルが書き込まれたが、修正後は一覧を返しつつファイルは書き込まれなくなった。27個の組み込みスタータープロジェクトについて、2つのモードで計54回比較した結果も、入力スキーマは一致した。一方、互換性にも変化がある。以前はコードの評価に失敗して一覧から消えていた一部のツールが表示されるようになり、エラーは呼び出し時に発生するようになった。検証結果

この変更は、フローをコーディングエージェントに接続するデプロイ環境で特に関係する。公式ドキュメントによると、LangflowではプロジェクトのフローをMCPツールとして公開でき、クライアントは名前と説明をもとにツールを選択する。プロジェクトではAPI key、OAuth、認証なしの設定がサポートされている。そのため、ツールの説明を取得する段階も独立したアクセス段階であり、エンジニアリング上、その副作用と権限を確認する必要がある。MCPサーバーのドキュメント

デプロイ担当者は、アップグレード後にツール一覧、入力フィールド、実際の呼び出しが整合しているかを検証するとよい。公開されている証拠が確認しているのは、特定の経路で既存のコンポーネントコードが実行されていたことだ。これをもって、匿名ユーザーが任意のコードを注入できたとも、すべてのデプロイ環境が影響を受けたとも推定できない。カスタムコンポーネントの許可状況、フローの内容、公開設定が、影響範囲を判断する鍵となる。

出典

  1. Langflow 1.12.6 release
  2. Derive flow input schemas without running stored component code — PR #15660
  3. Use Langflow as an MCP server