FlowiseのMCP stdio実装に深刻度9.9の脆弱性が存在し、セルフホスト環境においてリモートコード実行を許す可能性があります。
軽量なオープンソースAIプラットフォームFlowiseをセルフホストのAIワークロードに活用している企業にとって、最大深刻度に近い新たな問題が浮上しています。
Obsidian Securityの研究者らは、Model Context Protocol(MCP)stdioサーバーの実装を通じてセルフホストのFlowise環境に影響を及ぼす、ワンクリックでのリモートコード実行(RCE)脆弱性の詳細を公開しました。
この問題の本質は、攻撃者が制御するMCP設定に対するサンドボックス機能の欠如であり、サーバー側でのコード実行につながります。
「Flowiseにおける認証後のRCEは、保存や実行の前に悪意あるチャットフローをインポートするだけで、ワンクリックで引き起こせます」と研究者らはブログ記事で述べています。「公式パッチは入力検証に依存していますが、これは容易に回避できるものであり、根本原因への対処にはなっていません。」
Flowiseは、社内AIアシスタント、検索拡張生成(RAG)アプリケーション、顧客向けチャットボット、ビジネスシステムに接続された自律型エージェントの開発に広く利用されています。
この脆弱性はFlowise Cloudには影響しません。Flowise Cloudではstdio MCPが無効化されているためです。一方、この機能が有効化されておりどうしても必要な環境については、開発者はセキュリティと機能性のトレードオフを理解した上で、潜在的な脅威に対してサーバー設定を積極的に見直す必要があると、研究者らは説明しています。
Flowiseがアクセス可能なすべてに影響するワンクリックRCE
CVE-2026-40933として追跡されるこの脆弱性は、FlowiseによるMCP stdioサーバーの実装に影響します。MCPのstdioは、ローカルのサーバープロセスを起動し、標準入出力ストリームを介してそれらと通信することで、AIエージェントがファイル、Gitリポジトリ、データベース、ブラウザ、ローカル認証情報などを操作できるように設計されています。
Obsidian Securityによると、この問題の原因はFlowiseがユーザーに任意のコマンドを含むMCP stdioサーバーを設定できるようにしていることにあります。これらのコマンドは最終的に基盤となるオペレーティングシステムによって実行されるため、攻撃者はFlowiseプロセスの権限でリモートコード実行を達成できます。
コンテナ化されたデプロイ環境では、これによってプラットフォームをホストしている環境へのrootレベルのアクセスが実質的に可能になると、研究者らは指摘しています。
この脆弱性にはCVSSスコア9.9が割り当てられており、悪用に成功した場合、Flowiseを通じてアクセス可能なAPIキー、データベース、クラウドリソース、SaaSアプリケーション、その他の資産が露出する可能性があります。
修正が不十分と研究者が指摘
今回の開示では、MCP stdioコマンドの設定と実行を制限することを目的としたFlowiseによる一連の修正の取り組みが詳述されています。しかしObsidianによれば、各バージョンの対策はいずれも主としてコマンド検証とフィルタリングメカニズムに依存しており、特定の条件下で回避できてしまうといいます。
「Flowiseはリスクを認識し、複数ラウンドにわたってCustom MCPを強化したようです」と研究者らは述べています。「#5232では、Custom MCP設定向けにデフォルトで有効なバリデーションレイヤーであるCUSTOM_MCP_SECURITY_CHECKが導入されました。」これらのチェックにより明らかなコマンド実行経路は削減されたものの、ユーザーがstdio MCP設定を指定できる状態を許容するという根本的な脅威はほとんど解消されていないと、研究者らは述べています。
Obsidianによるこの脆弱性の報告を受け、アップデート#5741および#5943ではフラグ検証によるさらなる機能強化が行われました。しかし、これらもまた脅威を完全に排除するには至りませんでした。
stdio MCPをデフォルトで安全でないものとして扱い、明示的なオプトインを必要とするよう求めたところ、Flowiseは「ユーザーが依存している可能性のある機能を完全に無効化せずに、既知の問題を制限したい」と述べたと伝えられています。Obsidianは、Flowiseの現行の保護機能を回避してRCEを成功させる方法を示す概念実証(POC)エクスプロイトコードを公開しています。
研究者らが推奨する唯一の完全な緩和策は、「CUSTOM_MCP_PROTOCOL=sse」を設定してMCP stdioをオフにすることです。運用上それが困難な場合は、可能な限り信頼できるパッケージをピン留めし、信頼できないソースからインポートされたチャットフローを精査することが有効かもしれないと、研究者らは付け加えています。
翻訳元: https://www.csoonline.com/article/4179309/flowises-mcp-implementation-can-run-ghost-commands.html