
Эксплойт для неаутентифицированного сброса пароля в Flowise AI ≤ 3.0.5. Использует endpoint /api/v1/account/forgot-password для смены пароля любого пользователя без предварительной аутентификации. Включает proof-of-concept скрипт и рекомендации по устранению.
CVE ID: CVE-2025-58434
Затронутое ПО: Flowise AI
Уязвимые версии: <= 3.0.5
Исправленная версия: 3.0.6 и новее
Критичность: Критическая
Автор: arensballiu
Дата: 2025
Версии Flowise AI до 3.0.5 включительно содержат уязвимость нарушения аутентификации в процессе сброса пароля. Конечная точка /api/v1/account/forgot-password возвращает временный токен сброса (tempToken) непосредственно в ответе API, не требуя никакой предварительной аутентификации или подтверждения по электронной почте.
Неаутентифицированный злоумышленник, который знает (или может перебрать) действительный адрес электронной почты, может:
tempToken непосредственно из ответа API.Эта уязвимость полностью обходит предусмотренный процесс подтверждения по электронной почте, поскольку токен утекает в HTTP-ответе, а не отправляется только на почтовый ящик владельца учётной записи.
| Конечная точка | Метод | Назначение |
|---|---|---|
/api/v1/auth/login | POST | Используется для проверки существования учётной записи по электронной почте |
/api/v1/account/forgot-password | POST | Инициирует сброс и раскрывает tempToken в ответе |
/api/v1/account/reset-password | POST | Завершает смену пароля с использованием токена |
Файл: CVE-2025-58434_POC.py
requestspip install requests
python3 CVE-2025-58434_POC.py -e <target_email> -u <target_url> [-p <new_password>]
| Флаг | Полная форма | Обязательный | Описание |
|---|---|---|---|
-e | --email | Да | Адрес электронной почты целевой учётной записи |
-u | --url | Да | Базовый URL экземпляра Flowise |
-p | --password | Нет | Новый пароль для установки (по умолчанию password) |
python3 CVE-2025-58434_POC.py -e [email protected] -u https://flowise.example.com -p P@ssw0rd!
[+] Email [email protected] exists!
[!] Sending forgot password request
[!] Sending reset password request
[+] Password Changed Successfully to: P@ssw0rd!
API сброса пароля был разработан для отправки tempToken на электронную почту пользователя, но сервер также включал его непосредственно в тело JSON-ответа. Это означает, что любой вызывающий, аутентифицированный или нет, немедленно получает токен при выполнении запроса, что делает этап доставки по электронной почте несущественным.
Кроме того, перебор адресов электронной почты возможен, поскольку конечная точка входа возвращает отдельное сообщение об ошибке ("Incorrect Email or Password") только при существовании адреса, что позволяет тривиально подтверждать действительные учётные записи перед запуском атаки.
tempToken передаётся исключительно через зарегистрированный адрес электронной почты.Данное доказательство концепции предоставляется исключительно в образовательных целях и для авторизованных исследований в области безопасности. Использование этого скрипта против систем без явного письменного разрешения является незаконным и неэтичным. Автор и участники не несут ответственности за неправомерное использование.