何が起きたか
Flowise 3.1.3以前では、カスタムMCP stdioノードの環境変数を大文字小文字を区別する文字列比較を使用して拒否リストに対して検証します。Windows上では環境変数名は大文字小文字を区別しないため、カスタムMCPノードを設定できる認証済みユーザーは「node_options」(小文字)を供給して「NODE_OPTIONS」拒否リストエントリをバイパスして「--require」を注入し、Flowiseサーバープロセス内で任意コードをロードできます。VulnCheckは概念実証が存在することを確認しました(bikini/exploitarium)。PR #6471で修正され、Flowise 3.1.3でリリースされました。
なぜ重要か
Flowiseは広く展開されているオープンソースのLLMOps/エージェントフロープラットフォームです。カスタムMCPノードアクセス権を持つ任意の認証済みFlowiseユーザー — セルフホスティング展開での一般的なロール — はWindowsインスタンス上でサーバーレベルのRCEにエスカレートできます。Flowiseはルマランパイプラインをオーケストレーションするため、侵害されたサーバーはインスタンス上のすべてのフローに対するすべてのAPIキー、モデル設定、接続されたデータソース、会話履歴を露出します。
攻撃経路
環境変数「node_options」(小文字)を「--require <malicious_module>」値で設定できるカスタムMCPノード設定アクセス権を持つ認証済みユーザー。Flowiseの大文字小文字を区別する拒否リストはそれを見逃します。ノード生成時に任意コードがFlowiseサーバープロセスで実行されます。
影響を受けるシステム
Flowise ≥ 0、< 3.1.3、Windows上で実行
緩和策
Flowiseを3.1.3以降にアップグレードします。GitHub PR:https://github.com/FlowiseAI/Flowise/pull/6471