FlowiseのNodeVMサンドボックスからのエスケープ:puppeteerの許可リストを悪用することで、認証されたユーザーがChromiumを通じて任意のコード実行(RCE)や任意のファイル読み込みを可能にする脆弱性。

Flowise(パッケージ:flowiseとflowise-components)のバージョン3.1.2以前には、`vm2/@flowiseai/nodevm`というJavaScriptサンドボックスに、サンドボックスからの脱出を可能にする脆弱性があります。`/api/v1/node-custom-function`エンドポイントへのアクセス権を持つ認証されたユーザーは、puppeteer.launch()に攻撃者が制御するexecutablePathとargsのパラメータを渡すことで、サンドボックスを脱出できます。これにより、内部的にchild_process.spawn()がサンドボックスの境界外で実行され、Flowiseプロセスユーザー(公式のDockerイメージではroot)として任意のOSコマンドを実行したり、Chromiumの`file://`URL処理を悪用して任意のホストファイルを読み取ったりすることが可能になります。バージョン3.0.8~3.1.2でこの脆弱性を悪用するには、`ALLOW_BUILTIN_DEP=true`が必要です。それ以前のバージョンでは、デフォルトで脆弱性が存在します。3.1.3で修正されました。

影響を受けるパッケージ:
- npm (JavaScript) flowise: 影響を受けるバージョンは3.1.2以前、3.1.3で修正済み
- npm (JavaScript) flowise-components: 影響を受けるバージョンは3.1.2以前、3.1.3で修正済み