AIエージェントやLLMワークフローの構築に使われる人気のオープンソースプラットフォーム「Flowise」において、新たに6件の脆弱性が公表されました。これらを悪用すると、未認証または低権限の攻撃者が、脆弱なバージョンを稼働させているセルフホスト型・クラウド型のAIワークフローサーバー上でリモートコード実行(RCE)を達成できてしまいます。
これらの欠陥が組み合わさることで、インスタンスを速やかにアップグレードして防御を固めない限り、組織はサーバーの完全な乗っ取り、データの窃取、AIパイプラインの改ざんといったリスクに晒されることになります。
もっとも、FlowiseのGitHubセキュリティアドバイザリにはすでに、安全でないパスワードリセットフローによるアカウント乗っ取り(CVE-2025-58434)や、ユーザー入力が生のJavaScriptとして実行されてしまう複数の事例(CVE-2025-59434、CVE-2025-59528、GHSA-7944-7c6r-55vv)など、深刻度の高い問題や重大な問題が過去にも報告されています。
Cloudsecurity solutions
Flowise独自のModel Context Protocol(MCP)ノードも、CVE-2026-40933、CVE-2026-41268、CVE-2025-59528、GHSA-6933-jpx5-q87qといった過去のRCE問題と関連づけられており、AIツール群において安全でないサンドボックス化が構造的に繰り返されている実態を浮き彫りにしています。
Flowise 3.1.1および3.1.2のコードベースを調査した研究者らは、新たに6件のRCE経路を特定しました。そのうちいくつかは既存のパッチを回避するもの、あるいは安全でない設計パターンを再利用したものでした。
注目すべきは、新たに発見された不具合のひとつが、Flowiseが以前のバージョンで既にパッチを適用済みだったCSVAgentノードのRCEであるCVE-2026-41264と重複していた点です。これは、当初の修正が不完全であり、後続のビルドでも依然として悪用可能であったことを示しています。
今回の新たな欠陥はPython、JavaScript、環境変数の悪用にまたがっており、多くの場合、通常のワークフロー構築において安全だと想定されていたユーザー制御可能な設定フィールドさえあれば悪用が可能です。
最も深刻な発見のひとつは、CSVAgentノードを経由したサーバーサイドでのPythonコード実行経路です。このノードはPyodideを使い、CSVの前処理を目的としてユーザーが指定したpandasコードを実行します。
Flowiseはこの機能を、拒否リスト方式のバリデーターと、コードが単一のread_csv呼び出しで始まることを要求する仕組みで保護しようとしていました。しかし研究者らは、pandasのread_pickleを悪用して悪意あるペイロードをデシリアライズする方法や、pandas.io.commonを利用する方法など、これらの制御を回避する複数の手法を示しました。
実際の攻撃デモでは、攻撃者はリバースシェルを起動するbase64エンコード済みのpickleペイロード(例:ncコマンド経由)を作成し、CSVAgentの「Additional Parameters」フィールドを通じて送り込みます。その後、prediction API経由でチャットフローを実行させることで、Flowiseサーバー上での完全なRCEを達成できます。

もうひとつのRCEの系統は、Flowiseが/api/v1/node-custom-functionエンドポイント経由で「Custom Function」のJavaScriptを実行する際に使用している、非推奨のvm2サンドボックスのフォーク版に起因します。
Elttamの研究者らによると、Flowiseは急速に成長し、AIワークフローを組み立てるためのGitHub上のトッププロジェクトの一つとなっており、セルフホスト型のデプロイと、マルチワークスペース対応の商用クラウド/エンタープライズ層の両方を提供しています。
Flowiseにおける6件の脆弱性
Flowiseはサンドボックスを特定のモジュールに制限していたものの、axios、moment、node-fetchについては明示的に許可しており、なおかつCVE-2026-22709の影響を受けるバージョンのvm2を稼働させていました。これにより、細工したErrorのスタック情報の悪用とchild_process.execSyncを組み合わせた、サンドボックスからの直接的な脱出が可能でした。
Flowiseがサンドボックスの強化を試み、後にvm2をデフォルトで無効化した後でも、研究者らはサンドボックス内でmomentのCVE-2022-24785のパストラバーサル挙動を悪用し、さらにFlowiseのドキュメントストアのアップローダー機能と組み合わせることで、新たな脱出手法を実証しました。具体的には、JavaScriptペイロード(rce.js)を.flowise/storageに書き込み、それをmoment経由で読み込んで実行するというものです。
その後の追加調査では、vm2が表向きは無効化されている状態であっても、useSandbox=falseを指定してexecuteJavaScriptCodeを呼び出すAgentAsTool、ChatflowTool、ExecuteFlowといったノード経由で、依然としてvm2に到達可能であることが判明しました。

これらのノードでは、baseURLパラメータに対する検証が、URLのフラグメント部分を無視する表面的なisValidURLチェックのみでした。そのため攻撃者は、ハッシュ部分にペイロードを追加することで、サンドボックス化されたコードに任意のJavaScriptを注入できてしまいます。
この手法により、vm2を単に更新するだけでこの問題を無効化できるという当初の想定が誤りであったことが裏付けられました。momentを利用したサンドボックス脱出手法が、後のFlowiseのコミットにおいても依然として存在し続けていたのです。
6つ目の主要なRCE経路は、Flowiseのカスタム MCPノードを標的にしたものです。このノードはmodel-context-protocol-sdkを介して外部のModel Context Protocolサーバーと連携し、CUSTOM_MCP_PROTOCOL=stdioが設定されている場合、デフォルトで安全でないstdioトランスポートを許可してしまいます。
Flowiseは、コマンドをnode、npx、python、python3、dockerに制限し、PATHやNODE_OPTIONSといった一部の危険な環境変数を拒否リストに加えることで、ローカルファイルや環境変数の悪用に対する防御を試みていました。しかし、それ以外の強力な変数については手つかずのまま残されていました。
joernによるPYTHONWARNINGS/BROWSER手法を含む、過去の環境変数悪用に関する研究の手法を活用することで、
研究者らはpython3のMCPサーバー経由でRCEを達成しました。また、HOMEを上書きしつつ/proc/self/environを指すargsを指定してnodeを使用し、環境変数ファイル自体をリバースシェルのペイロードを含む有効なJavaScriptとして成立させる手法でも同様にRCEを達成しています。
Flowiseは、これらの問題の一部について複数のプルリクエストで対応しました。NFKC正規化の問題を理由としたCSVAgentおよびAirtableAgentノードの削除、vm2の許可対象依存関係からのmomentの除外、環境変数の許可リストの追加、そしてMCPのデフォルトトランスポートをstdioからSSEへ変更する対応などが含まれます。
しかし研究者らは、vm2への依存は、新たな脱出手法が繰り返し発見されてきた経緯を踏まえると依然として危険であると強調しており、特にマルチテナントのAIワークフロー環境においては、isolated-vmやより強固な分離機構への移行を推奨しています。
管理者は直ちにFlowiseを最新の安全なバージョンへアップグレードし、predictionおよびnode-custom-functionエンドポイントが外部に露出していないか点検すべきです。あわせて、カスタムのPython/JS実行ノードを無効化またはロックダウンし、厳格なネットワーク・ホスト強化策で制約されない限り、CUSTOM_MCP_PROTOCOL=stdioの有効化は避ける必要があります。
100万ドルのデータ侵害保証は本当に有効な保護なのか?: 10項目のAI SOC侵害保証ガイドを無料でダウンロード
Darkweb monitoring
翻訳元: https://gbhackers.com/six-flowise-vulnerabilities/