
Эксплойт сброса пароля без аутентификации для Flowise AI ≤ 3.0.5. Злоупотребляет конечной точкой /api/v1/account/forgot-password, чтобы изменить пароль любого пользователя без предварительной аутентификации. Включает сценарий подтверждения концепции (PoC) и рекомендации по устранению уязвимости.
Идентификатор CVE: CVE-2025-58434
Затронутое ПО: Flowise AI
Уязвимые версии: <= 3.0.5
Исправленная версия: 3.0.6 и новее
Серьёзность: Критическая
Автор: r3nsi15
Дата: 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 передаётся исключительно через зарегистрированный адрес электронной почты.Это доказательство концепции предоставляется только для образовательных и авторизованных целей исследования безопасности. Использование этого скрипта против систем без явного письменного разрешения незаконно и неэтично. Автор и участники не несут ответственности за неправомерное использование.