Flowise の 6件の脆弱性:AI Workflow サーバ上での RCE の恐れ

Six Flowise Vulnerabilities Enable Remote Code Execution on AI Workflow Servers

2026/08/04 gbhackers — Flowise の新たに公表された 6 件の脆弱性を悪用する未認証または低権限の攻撃者は、脆弱なバージョンで稼働する自己ホスト型サーバ/クラウド AI ワークフロー・サーバ上で、リモート・コード実行 (RCE) を達成できる。Flowise は、AI エージェントと LLM ワークフローの構築において人気を博しているオープンソース・プラットフォームであり、インスタンスの迅速なアップグレードもしくはロックダウンが実施されない場合、これらの欠陥の悪用に成功した攻撃者により、サーバ全体の侵害/データ流出/AI パイプライン操作などにつながる可能性がある。

一方、同プロジェクトの GitHub セキュリティ・アドバイザリでは以前から高深刻度の問題の履歴が示されており、その中には、安全ではないパスワード・リセット・フローを介したアカウント乗っ取りの脆弱性 CVE-2025-58434 や、ユーザー提供入力が生の JavaScript として実行される複数の事例 CVE-2025-59434CVE-2025-59528GHSA-7944-7c6r-55vv などが含まれる。

Flowise のカスタム Model Context Protocol (MCP) ノードにおいても、脆弱性 CVE-2026-40933CVE-2026-41268CVE-2025-59528GHSA-6933-jpx5-q87q などが以前の RCE 問題に関連付けられており、これらの問題からは、AI ツールにおける安全ではないサンドボックス化の体系的なパターンが浮き彫りになっている。

こうした状況を踏まえ、Flowise 3.1.1/3.1.2 コードベースをレビューした研究者により 6 つの RCE ベクターが新たに特定され、そのうち複数の問題は、既存のパッチをバイパスするものや、安全ではない設計パターンを再利用したものである。

特に、すでに Flowise が以前のバージョンでパッチを適用していた CSVAgent ノードの RCE の脆弱性 CVE-2026-41264 と今回の脆弱性が重複しており、当初の修復が不完全で、後続のビルドでも問題が悪用可能な状態で残存していたことを示している。

新たな欠陥は、Python/JavaScript/環境変数の悪用に関係しており、多くの悪用ケースにおいて必要なのは、通常のワークフロー構築では安全と想定されていたユーザー制御のコンフィグ項目だけである。最も重大な発見の 1 つは、CSVAgent ノードを介したサーバ・サイド Python 実行経路であり、CSV 前処理を目的としてユーザー提供の pandas コードを実行するため、このノードでは Pyodide が使用される。

Flowise による保護では、拒否リストベースの検証機構と、コードが単一の readcsv 呼び出しで始まる必要があるという要件が設けられていたが、研究者たちは、悪意のあるペイロードをデシリアライズする pandas の readpickle の悪用や、pandas.io.common の悪用など、複数の制御バイパスの方法を示した。

実際のエクスプロイトでは、リバースシェルを起動する base64 エンコード済み pickle ペイロード (例:nc 経由) が構築され、CSVAgent の “Additional Parameters” フィールドを通じて攻撃者により配信され、その後、prediction API 経由で Chatflow を実行することで、Flowise サーバ上で完全な RCE が得られる。

RCE via pandas (Source : Elttam).
RCE via pandas (Source : Elttam).

別の種類の RCE は、非推奨の vm2 サンドボックスを Flowise がフォークして使用していることに起因し、このサンドボックスは、/api/v1/node-custom-function エンドポイント経由で “Custom Function” JavaScript を実行するために使用される。

Flowise は、AI ワークフローを構築する主要な GitHub プロジェクトへと急速に成長しており、自己ホスト型デプロイメントと複数ワークスペースをサポートする商用クラウド/エンタープライズ向けのプランを提供していると、Elttam の研究者は述べている。

6 件の Flowise 脆弱性

Flowise はサンドボックスを特定のモジュールに対して制限していたが、axios/moment/node-fetch は明示的に許可されており、脆弱性 CVE-2026-22709 により脆弱な vm2 ビルドが実行され、細工された Error stack を悪用し、child_process.execSync を介して直接的なサンドボックス・エスケープが可能である。

さらに、Flowise がサンドボックスの強化を試み、その後に vm2 をデフォルトで無効化した後であっても、研究者により新たなエスケープ方法が実証されており、サンドボックス内で moment のパストラバーサルの脆弱性 CVE-2022-24785 を悪用し、Flowise の document store uploader と組み合わせて JavaScript ペイロード (rce.js) を “.flowise/storage” へ書き込み、その後、moment 経由で読み込んで実行することが可能である。

追跡調査では、vm2 が名目上は無効化されていても、AgentAsTool/ChatflowTool/ExecuteFlow などのノードを通じて依然として到達可能であり、これらのノードは useSandbox=false を指定して executeJavaScriptCode を呼び出していたほか、baseURL パラメータに対して URL フラグメントを無視する表面的な isValidURL チェックだけが行われていたため、攻撃者はハッシュ部分にペイロードを追加することで、サンドボックス内で任意の JavaScript を実行できた。

Additional Parameters (Source : Elttam).
Additional Parameters (Source : Elttam).

この手法により、moment ベースのサンドボックス・エスケープが後続の Flowise コミットでも存続していることが確認され、vm2 を単に更新すれば問題が無効化されるという当初の想定が成り立たないことが明らかになった。

6 つ目の主要な RCE ベクターは、Flowise のカスタム MCP ノードを標的にするものであり、このノードは modelcontextprotocolsdk を介して外部 Model Context Protocol サーバを統合し、デフォルトの CUSTOMMCPPROTOCOL=stdio の場合に、安全ではない stdio トランスポートを許可する。

Flowise は、コマンドを node/npx/python/python3/docker だけに制限し、PATH や NODEOPTIONS などの危険な環境変数を拒否リストに取り込むことで、ローカル・ファイルや環境変数の悪用を防ごうとしていたが、他の強力な変数は手つかずの状態にあった。

joern の PYTHONWARNINGS/BROWSER トリックといった、環境変数に対する以前の悪用研究の手法を活用することで、研究者は python3 MCP サーバ経由の RCE を達成した。また、/proc/self/environ を指す args と一緒に node を使用し、HOME を上書きすることで、リバースシェル・ペイロードを含む有効な JavaScript に環境ファイルを書き換える方法でも RCE が達成された。

Flowise は複数の pull requests において、NFKC 正規化問題のための CSVAgent および AirtableAgent ノードの削除、vm2 の許可依存関係からの moment の削除、環境変数の許可リストへの追加などに加えて、デフォルトの MCP トランスポートを stdio から SSE に変更することで、これらの問題の一部に対処している。

しかし、研究者たちは、vm2 には新たなエスケープ手法が繰り返し発見されてきたため、依存し続けることは依然として危険であると強調しており、特にマルチテナントの AI ワークフロー・デプロイメントでは、isolated-vm などの強力な分離機構へ移行することが推奨されている。

管理者にとって必要なのは、最新の安全なバージョンへ Flowise を直ちにアップグレードすることである。その上で、外部からアクセス可能な prediction および node-custom-function エンドポイントについてデプロイメントを監査し、カスタム Python/JS 実行ノードを無効化またはロックダウンすべきであり、厳格なネットワークおよびホスト強化により制約されている場合を除いて、CUSTOMMCPPROTOCOL=stdio を設定しないことも重要である。