[緊急警告] Flowise AIにおける致命的なサンドボックスエスケープ脆弱性 (CVE-2026-69253) と対策
はじめに – 深刻な脆弱性のお知らせ
Flowise AIをご利用の皆さん、そしてJavaScript/TypeScriptを使った開発に携わる全てのエンジニアの皆さんへ。Flowise AIにおいて、**認証された攻撃者がサンドボックスの保護を突破し、基盤となるサーバー上で任意のコードを実行できてしまう**、極めて深刻な脆弱性 (CVE-2026-69253 / GHSA-wg86-r78f-74mp) が発見されました。
この脆弱性はCritical(最高)レベルの深刻度と評価されており、システムが完全に侵害され、機密情報の漏洩、データの改ざん、さらにはサービスの停止に繋がる可能性があります。特にFlowise AIでカスタムJavaScriptコードを実行している場合は、即座の対応が求められます。
Flowise AIとは?なぜフロントエンドエンジニアにも関係するのか
Flowise AIは、AIアプリケーションをローコードで構築できる人気のプラットフォームです。直感的なUIで様々なAIコンポーネントを組み合わせ、チャットボットやAIエージェントなどを手軽に作成できます。内部的にはNode.jsで動作し、カスタムJavaScriptコードの実行にはセキュリティサンドボックスライブラリ「vm2」を利用しています。
フロントエンドエンジニアの皆さんの中には、Flowise AIを社内ツールや特定の機能のバックエンドとして活用している方、あるいは関連するAPIを開発している方もいらっしゃるかもしれません。Flowise AIのようなローコードツールであっても、カスタムコード実行の機会がある以上、その基盤となるセキュリティには深い関心を持つ必要があります。
脆弱性の詳細 – なぜサンドボックスが破られるのか
今回の脆弱性の根源には、Flowise AIがカスタムJavaScriptコードの実行に利用している`vm2`サンドボックスの根本的な問題があります。`vm2`の開発元自身も、セキュリティ上のリスクから**本番環境での使用を非推奨**としています。残念ながら、Flowiseの特定の機能(例: `AgentAsTool`, `ChatflowTool`, `ExecuteFlow`など)でこの安全でない`vm2`サンドボックスが依然として使われていました。
具体的には、以下の複数の技術的欠陥が組み合わさることで、サンドボックスエスケープが可能になります。
1. **`moment`ライブラリの脆弱性バイパス:** FlowiseがカスタムJS内で利用を許可している`moment`ライブラリには、以前からディレクトリトラバーサル脆弱性(`CVE-2022-24785`)が存在していました。今回の報告では、この脆弱性に対するパッチが`vm2`サンドボックス環境下で容易にバイパス可能であることが判明しました。
2. **`baseURL`の入力検証不備:** `AgentAsTool`などのコンポーネントで利用される`baseURL`の入力検証が不十分でした。これにより、攻撃者はURLのハッシュフラグメント部分に悪意のあるコードを注入できてしまいます。
これらの問題を組み合わせることで、**認証済みの攻撃者**は`baseURL`を通じて悪意のあるコードを注入し、`moment`ライブラリの脆弱性バイパスを利用して`vm2`サンドボックスの保護をすり抜けます。結果として、Flowiseが稼働しているサーバー上で、事前にアップロードした任意のJavaScriptファイル(例えば、システムへの侵入を試みるリバースシェルなど)を実行できるようになってしまうのです。
この脆弱性はFlowiseAI/Flowise 3.1.1、FlowiseAI/nodevm 3.9.25、および本レポート執筆時点の最新コミットにも影響を及ぼします。
想定される被害
この脆弱性が悪用された場合、以下のような重大な被害が想定されます。
<ul><li>**サーバーの完全な侵害:** Flowiseが稼働しているサーバーOS上で、攻撃者がroot権限や同等の権限を取得し、システムを完全に制御する可能性があります。</li><li>**機密情報の漏洩:** データベースに保存されているユーザー情報、APIキー、チャット履歴などの機密データが窃取される可能性があります。</li><li>**データの改ざん:** システム上のファイルやデータベースの内容が不正に改ざんされる可能性があります。</li><li>**サービスの停止:** 悪意のあるコードの実行により、Flowise AIのサービスが停止したり、他のシステムへの攻撃の踏み台として利用されたりする可能性があります。</li></ul>
緊急対応策と今後の対策
この脆弱性に対する最も重要な推奨事項は、**vm2サンドボックスの使用を即座に停止し、よりセキュアなサンドボックス環境への移行を検討すること**です。
Flowiseのバージョンを最新に更新するだけでは、このサンドボックスエスケープ脆弱性は解決されません。根本的な対策として、以下の手順を早急に実行してください。
<ul><li>**vm2サンドボックスの使用停止:** `AgentAsTool`, `ChatflowTool`, `ExecuteFlow`など、`vm2`サンドボックスを使用している可能性のあるコンポーネントを特定し、その使用を一時停止するか、代替手段への切り替えを検討してください。</li><li>**よりセキュアなサンドボックス環境への移行:** 可能であれば、`isolated-vm`のような、より堅牢で実績のあるサンドボックス環境への移行を検討してください。これらのライブラリは、V8エンジンの分離機能を利用して、より厳密なサンドボックス化を実現しています。</li><li>**Flowise AIの構成確認:** 利用中のFlowise AIの構成を確認し、カスタムJavaScriptコードの実行が必須でない場合は、その機能を無効化することも検討してください。</li><li>**最小権限の原則:** Flowise AIが稼働するサーバーのユーザー権限を最小限に設定し、万が一の侵害時にも被害を最小限に抑えるよう対策してください。</li><li>**入力検証の徹底:** カスタムコードや外部からの入力値を扱う際には、常に厳格な入力検証を行い、不正なデータがシステムに注入されないよう注意してください。</li></ul>
まとめ
Flowise AIにおける今回のサンドボックスエスケープ脆弱性 (CVE-2026-69253) は、非常に深刻であり、速やかな対応が求められます。特に`vm2`サンドボックスを使用している場合は、その使用を停止し、より安全な代替への移行を最優先で検討してください。
ローコード/ノーコードツールが普及する現代においても、基盤となる技術のセキュリティに対する理解と対策は不可欠です。私たちフロントエンドエンジニアも、開発するアプリケーションの全体的なセキュリティ責任の一部を担っていることを再認識し、安全なシステム構築に努めましょう。