Flowise (пакеты flowise и flowise-comments) в версиях <= 3.1.2 содержат escape-версию песочницы в песочнице JavaScript vm2/@flowiseai/nodevm. Аутентифицированный пользователь, имеющий доступ к конечной точке /api/v1/node-custom-function, может выйти из песочницы, передав контролируемые злоумышленником параметры executablePath и args в puppeteer.launch(), который внутренне вызывает child_process.spawn() за пределами границы песочницы. Это позволяет выполнять произвольные команды ОС от имени пользователя процесса Flowise (root в официальном образе Docker) и раскрывать произвольные файлы хоста с помощью обработки URL-адреса file:// в Chromium.
В версиях 3.0.8–3.1.2 для эксплуатации требуется ALLOW_BUILTIN_DEP=true; более ранние версии доступны по умолчанию. Исправлено в 3.1.3.
Показать оригинальное описание (EN)
Flowise (packages flowise and flowise-components) in versions <= 3.1.2 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 escape the sandbox by supplying attacker-controlled executablePath and args parameters to puppeteer.launch(), which internally invokes child_process.spawn() outside the sandbox boundary. This allows execution of arbitrary OS commands as the Flowise process user (root in the official Docker image) and arbitrary host file disclosure via Chromium's file:// URL handling. In versions 3.0.8–3.1.2 exploitation requires ALLOW_BUILTIN_DEP=true; earlier versions are exploitable by default. Fixed in 3.1.3.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Flowiseai Flowise
cpe:2.3:a:flowiseai:flowise:*:*:*:*:*:*:*:*
|
— |
3.1.3
|