Flowise 脆弱性 として、CustomMCPノードを起点とする2つのRCE(リモートコード実行)が相次いで公開されました。対象はオープンソースのAIエージェント/LLMアプリビルダー Flowise(GitHubスター 55,310・2026-08-11時点実測)です。2025年9月にCVSS10.0のCVE-2025-59528が公開されバージョン3.0.6で修正されましたが、半年後の2026年4月、同じCustomMCP機能の別の入力経路にCVSS9.9のCVE-2026-40933が見つかりました。「1つ直しても、同じ機能の別の穴が残っていた」という多段防御の失敗そのものを主役に、2つのCVEの技術的な違いと、読者自身のFlowise環境で今すぐ確認できる手順を整理します。
30秒でわかる|この記事のポイント
・正体:FlowiseのCustomMCPノードを起点とする2つの別々のRCE。CVE-2025-59528(CVSS10.0・2025年9月公開)とCVE-2026-40933(CVSS9.9・2026年4月公開)
・共通点:どちらもCustomMCPノードの入力を通じたコード実行だが、原因レイヤーが異なる(JavaScript評価 vs stdio引数サニタイズ)
・影響範囲:CVE-2025-59528は3.0.6未満、CVE-2026-40933は3.0.13以下。3.1.0以上なら両方とも対策済み
・実体:★55,310・fork24,875・contributor332名、直近pushも2026-08-10と現役開発中。FlowiseAI, Inc.が開発しFlowise Cloud(商用SaaS)も展開
・日本語カバレッジ:Qiitaに横断リストアップ記事が1件あるがCVE-2025-59528のみを扱い、CVE-2026-40933には触れていない
なお、認証・認可が抜けたAIエージェント連携エンドポイントを体系的に押さえたい場合は、サプライチェーンセキュリティ2026|攻撃手法・防御ツール・実践チェックリストを合わせて読んでください。本記事はそのうち「同一機能に対するパッチが、半年後に別経路で再び破られた」という実例に絞った解説です。
Flowiseとは:CustomMCPノードを持つAIエージェントビルダー
Flowise(FlowiseAI/Flowise)は、ドラッグ&ドロップでLLMアプリ・AIエージェントのワークフロー(chatflow)を組み立てられるオープンソースのビルダーです。サーバー側はNode.js、UIはReactで構成されるTypeScript製のmonorepo(pnpm管理)で、LangChain連携のノード群を豊富に備えています。GitHub API実測では★55,310・fork24,875・contributor332名、直近のpushも2026-08-10と現役で開発が続いており、リリースは85件、最新版は[email protected](2026-07-29公開)です。開発元はFlowiseAI, Inc.で、セルフホスト版とは別にFlowise Cloudというマネージドの商用SaaSも展開しています。
ライセンスは基本的にApache-2.0ですが、packages/server/src/enterprise/配下と明示的な著作権表示のあるファイルはCommercial Licenseとして別扱いになっています。READMEの「License」節は単に「Apache License Version 2.0」とだけ書いており、この分離には触れていません。GitHub API上のlicense.spdx_idも混在ライセンスのためNOASSERTION(機械判定不能)を返します。Enterprise機能を利用する場合は、LICENSE.md原文でCommercial Licenseの範囲を確認しておく必要があります。
CustomMCPノードは、chatflowの設定として「どのMCPサーバーに、どのコマンド・引数で接続するか」をmcpServerConfigとして保持します。この設定値の扱い方に、性質の異なる2つの不備が見つかったというのが今回のFlowise 脆弱性の構図です。
Flowise MCP連携の使い方としては、①Flowise自身が持つノード群をMCP経由で外部のLLMクライアント(Claude Desktop等)に公開する方向と、②外部のMCPサーバーをCustomMCPノードとしてchatflowに取り込む方向の2通りがあります。今回の2つのCVEが問題にしているのは②の方向、つまり外部MCPサーバーをFlowise側に取り込む際の設定処理です。AIエージェントに外部ツールを接続する機能が、双方向とも攻撃面になり得るという点は、MCPを実装する他のOSSにも共通する構造です。
Flowise 脆弱性 CVE-2025-59528とCVE-2026-40933の時系列
日付はGitHub Security Advisories・Releasesの実測値です。
| 日付 | 出来事 |
|---|---|
| (2.2.7-patch.1以降) | CVE-2025-59528の影響開始バージョン |
| 2025年9月 | CVE-2025-59528(GHSA-3gcm-f6qx-ff7p)公開。CVSS10.0。バージョン3.0.6で修正 |
| 2026年4月第1週 | 複数の海外セキュリティメディア(TheHackerNowsほか)が野生での悪用を報道 |
| 2026-04-15 | CVE-2026-40933(GHSA-c9gw-hvqq-f33r)公開。CVSS9.9。バージョン3.1.0で修正 |
| 2026-07-29 | 最新版[email protected]公開(本記事執筆時点の最新) |
| 2026-08-10 | 直近のpush(現役で開発継続中) |
| 2026-08-11 | 本記事のリサーチ・執筆時点(★55,310を実測) |
CVE-2025-59528が3.0.6で修正されてから、CVE-2026-40933が公開されるまで約半年の間隔があります。同じCustomMCPノードという機能に対して、1つ目のパッチが穴を塞いだつもりでも、別の入力経路(stdioコマンドの引数サニタイズ)が手つかずのまま残っていたことになります。
半年という間隔は、脆弱性が「見落とされていた」のか「新規に作り込まれた」のかを判断する材料にもなります。GHSA-c9gw-hvqq-f33rの記述からは、CVE-2026-40933がCVE-2025-59528のパッチ作業と同時に見逃されたものなのか、それとも3.0.6以降の別の変更で新たに生まれたものなのかは断定できません。確認できているのは、①CVE-2025-59528のパッチ(3.0.6)はJavaScript評価の経路のみを塞いだこと、②stdioコマンドの引数サニタイズという別経路は、その時点では検証対象に含まれていなかったこと、の2点です。1つの機能に対するセキュリティレビューが、見つかった不備の修正だけで終わり、同じ機能が持つ他の入力経路まで横展開できていなかった可能性がある、という読み方ができます。
何が起きたのか:CustomMCPの2段階の穴
2つのCVEは、どちらも「CustomMCPノードの設定値が、検証されないままシステムコマンドの実行につながる」という点では共通していますが、具体的な原因レイヤーが異なります。
CVE-2025-59528は、CustomMCPノードがmcpServerConfigをJavaScriptのFunction()コンストラクタで未検証のまま評価・実行してしまう不備でした。攻撃経路は/api/v1/node-load-method/customMCPエンドポイントで、APIトークンさえあればユーザー操作不要でRCEが成立します。CVSS10.0という最高値は、この「認証情報以外の条件が一切不要」という成立の容易さを反映しています。
CVE-2026-40933は、Custom MCPのstdioコマンドの引数サニタイズ不備が原因です。Flowiseは許可されたコマンド(npx等)でのMCPサーバー起動を想定していますが、その引数の組み立て方に不備があり、危険な引数を組み合わせることでコード実行につなげられます。CVE-2025-59528のような「未検証コード評価」を塞いでも、こちらは別の入力経路として残っていました。成立には認証済みユーザーが悪意あるMCP設定を追加するか、細工されたchatflowをインポートする必要があり、CVE-2025-59528よりわずかに条件が付きますが、それでもCVSS9.9という高い深刻度です。
mcpServerConfig"] --> B{"どちらの経路で処理されるか"} B -- "JavaScript評価" --> C["Function()で未検証のまま評価
CVE-2025-59528 CVSS10.0"] B -- "stdioコマンド起動" --> D["引数サニタイズ不備
CVE-2026-40933 CVSS9.9"] C --> E["3.0.6で修正"] D --> F["3.1.0で修正"] style C fill:#ffe3e3,stroke:#c92a2a,stroke-width:2px style D fill:#ffe3e3,stroke:#c92a2a,stroke-width:2px style E fill:#d9f5ec,stroke:#0b7a63,stroke-width:2px style F fill:#d9f5ec,stroke:#0b7a63,stroke-width:2px
① 何が起きた:CustomMCPノードという同じ機能に対し、JavaScript評価の穴(CVE-2025-59528)を塞いだ半年後、stdio引数サニタイズの穴(CVE-2026-40933)が見つかった。② 何が原因:1つの入力(mcpServerConfig)が処理される経路が複数あり、片方だけを検証しても他方が手つかずのまま残っていた。③ 何をすればよいか:バージョンを3.1.0以上に更新し、稼働中のchatflowでCustomMCPノードの設定内容を棚卸しする。
CVE-2025-59528 と CVE-2026-40933 の比較
| 項目 | CVE-2025-59528 | CVE-2026-40933 |
|---|---|---|
| CVSS | 10.0 | 9.9 |
| 原因 | mcpServerConfigをJavaScriptのFunction()コンストラクタで未検証のまま評価・実行 |
stdioコマンドの引数サニタイズ不備(許可コマンドnpx等に危険な引数を組み合わせられる) |
| 影響バージョン | 2.2.7-patch.1以上3.0.6未満 | 3.0.13以下 |
| 修正バージョン | 3.0.6(2025年9月公開) | 3.1.0(2026-04-15公開) |
| 攻撃条件 | APIトークンのみ・ユーザー操作不要 | 認証済みユーザーが悪意あるMCP設定を追加、または細工されたchatflowをインポート |
| 公開後の状況 | 複数の海外セキュリティメディアの報道によれば、2026年4月第1週時点で1万台超の公開インスタンスが野生で攻撃対象になったとされる(一次データは未確認) | 実際に悪用された報告は本リサーチでは見つからず(未確認) |
この表の「公開後の状況」に書いた「1万台超」という数値は、TheHackerNews・BleepingComputer等の複数の海外セキュリティメディアが報じている数値であり、VulnCheck社等の一次データそのものを本リサーチで確認できたわけではありません。断定を避け、出典を明示したうえで参考情報として扱ってください。
自分の環境が影響を受けるか確認する手順
判定はバージョン確認→CustomMCPノードの棚卸しの順で行います。3.1.0以上であれば両CVEとも対策済みとみなせますが、npm globalインストールとDocker運用では確認コマンドが異なるため、自分の運用形態に合わせて実行してください。
# npmでグローバルインストールしている場合のバージョン確認
npm ls -g flowise flowise-components
# npxで起動している場合
npx flowise --version
# Dockerで運用している場合のイメージタグ確認
docker inspect <container> --format '{{.Config.Image}}'
3.1.0未満であれば、CVE-2026-40933(およびそれ以前のバージョンならCVE-2025-59528も)の影響範囲に入ります。バージョンを確認したら、稼働中のchatflowにCustomMCPノードが含まれていないか、UIのChatflow編集画面からmcpServerConfigの設定内容を棚卸ししてください。CustomMCPノードを一度も使っていない環境であれば、そもそもこれら2つの脆弱性が悪用される経路自体が存在しません。
| 判定項目 | 条件 | 影響 |
|---|---|---|
| CustomMCPノード | 未使用 | 対象外(悪用経路なし) |
| CustomMCPノード使用 | バージョン3.1.0以上 | 対象外(両CVEとも修正済み) |
| CustomMCPノード使用 | バージョン3.1.0未満 | CVE-2026-40933(該当バージョンによってはCVE-2025-59528も)の影響範囲 |
npm globalインストールとDocker運用ではバージョンの追従タイミングが異なる点にも注意してください。npm globalはnpm update -gを手動実行しない限りバージョンが固定されたままですが、Dockerで:latestタグを使っている場合はイメージの再pullで最新版に切り替わります。逆に、Dockerで特定のバージョンタグ(例: flowiseai/flowise:3.0.6)を固定運用している場合は、:latestに見えても実際には古いバージョンのまま、という取り違えが起きやすいので、docker inspectでイメージタグを直接確認するのが確実です。
なお、Flowise Cloudのようなベンダー管理のマネージドSaaSを利用している場合は、セルフホスト版のバージョンに直接紐づくこの確認手順の対象外です。ベンダー側で修正済みの可能性が高いと考えられますが、この点は本リサーチでは未確認のため、利用しているプランのサポート窓口に確認することをおすすめします。
このCustomMCP 脆弱性の確認作業は、CustomMCPノードを使っていない環境であれば数分で「対象外」と判定できます。逆にCustomMCPノードを積極的に使っている環境ほど、棚卸しに時間がかかることを見込んでおいてください。
対策:優先度別の手順
最優先はバージョン3.1.0以上への更新です。本記事執筆時点の最新は[email protected](2026-07-29リリース)で、両CVEを含む修正済みの系列に入ります。
# npm globalの場合
npm update -g flowise flowise-components
# Dockerの場合
docker pull flowiseai/flowise:latest
docker compose up -d
すぐに更新できない場合の緩和策は、CustomMCPノードの利用そのものを絞る方向で検討します。
・稼働中の全chatflowを棚卸しし、CustomMCPノードの有無を確認する。他ユーザーがインポートしたchatflowに含まれている可能性もあるため、管理者権限で一覧を確認する
・信頼できないMCPサーバー設定・chatflowのインポートを制限する。CVE-2026-40933は悪意あるMCP設定の追加やchatflowインポートが引き金になるため、インポート権限を絞る
・FlowiseインスタンスへのAPIトークン発行・管理を見直す。CVE-2025-59528はAPIトークンさえあればユーザー操作不要で成立するため、トークンの発行範囲・失効ポリシーを確認する
対応の順序としては、まずバージョン更新を優先し、更新に時間がかかる場合の暫定策としてCustomMCPノードの利用制限・トークン管理の見直しを並行して進めるのが実践的です。更新後は、バージョン確認だけで終わらせず、稼働中のchatflowログにCustomMCPノード経由の不審なコマンド実行が記録されていないかも合わせて確認しておくと安心です。
自分でMCPサーバー連携機能を実装・運用している場合は、今回のFlowise RCEの事案を自分のコードベースの棚卸しにも活用できます。確認するとよい観点は次の3つです。①外部から渡された設定値を、コード評価(eval()やFunction()等)に直接渡していないか(CVE-2025-59528の系統)、②コマンド起動時の引数を、シェルの特殊文字やパス区切りを考慮せず単純結合していないか(CVE-2026-40933の系統)、③1つの入力に対して修正を入れた際、同じ入力を処理する別の経路が他に無いかを洗い出したか。Flowiseの事案は、③の観点を欠いたまま①だけを塞いだ結果、半年後に②が表面化した例として読むことができます。
まとめ:パッチ後も再燃したFlowise 脆弱性から学ぶこと
Flowise 脆弱性の今回の事案が示すのは、「1つの脆弱性を塞いだから、その機能はもう安全」とは限らないということです。CustomMCPノードという同じ機能に対して、JavaScript評価の穴(CVE-2025-59528)を3.0.6で塞いだにもかかわらず、半年後にstdio引数サニタイズという別レイヤーの穴(CVE-2026-40933)が見つかりました。1つの入力が複数の経路で処理される機能では、片方の経路だけを検証して安心してしまうリスクがあることを、この2段階の攻防は物語っています。
同種の「AIエージェント連携機能そのものが攻撃の入口になった」実例としては、MCP脆弱性!STDIOトランスポートの設計欠陥で20万台のサーバーがRCEの危険に——OX Securityが警告も参考になります。自作・導入しているMCP連携機能があるなら、「1つの設定値が複数の処理経路を持っていないか」「片方を直したときにもう片方を見落としていないか」を棚卸しする価値があります。
AIエージェントビルダーの安全性を継続的に評価する観点では、OWASP APTS|AIエージェント時代の自律型ペネトレーションテスト基準を読むや、大規模スキャンによる悪用の実態を知りたい場合はBISSA Scanner解析:AI支援の大規模脆弱性スキャンと.envクレデンシャル窃取の仕組みも合わせて確認してください。
参照ソース
・Flowise: Authenticated RCE Via MCP Adapters(GHSA-c9gw-hvqq-f33r・CVE-2026-40933・公式GitHub Advisory) — CVE-2026-40933のCVSS・影響バージョン・修正バージョン・技術的原因
・RCE in FlowiseAI/Flowise(GHSA-3gcm-f6qx-ff7p・CVE-2025-59528・公式アドバイザリ) — CVE-2025-59528のCVSS・攻撃経路・修正版
・Flowise AI Agent Builder Under Active CVSS 10.0 RCE Exploitation - The Hacker News — 野生での悪用状況の報道
・FlowiseAI/Flowise(公式リポジトリ) — star数・ライセンス・リリース履歴の実測