Skip to content
CriticalVulnerability

GHSA-9gvv-qjj3-2p6g: Flowise NodeVM sandbox escape via puppeteer allowlist - authenticated RCE and arbitrary file read via Chromium

Published
Record updated
View JSON

Summary

Flowise versions 3.1.2 and earlier (packages flowise and flowise-components) contain a sandbox escape in the vm2/@flowiseai/nodevm JavaScript sandbox. An authenticated user with access to the /api/v1/node-custom-function endpoint can supply attacker-controlled executablePath and args to puppeteer.launch(), which invokes child_process.spawn() outside the sandbox, enabling arbitrary OS command execution as the Flowise process user (root in the official Docker image) and arbitrary host file disclosure via Chromium's file:// handling. Versions 3.0.8 to 3.1.2 require ALLOW_BUILTIN_DEP=true for exploitation; earlier versions are exploitable by default.

Mitigation

Fixed in 3.1.3.