
Exploit de restablecimiento de contraseña no autenticado para Flowise AI ≤ 3.0.5. Abusa del endpoint /api/v1/account/forgot-password para cambiar la contraseña de cualquier usuario sin autenticación previa. Incluye un script de prueba de concepto y pautas de mitigación.
ID CVE: CVE-2025-58434
Software Afectado: Flowise AI
Versiones Vulnerables: <= 3.0.5
Versión Corregida: 3.0.6 y posteriores
Gravedad: Crítica
Autor: r3nsi15
Fecha: 2025
Las versiones de Flowise AI hasta la 3.0.5 inclusive contienen una falla de autenticación rota en el flujo de restablecimiento de contraseña. El endpoint /api/v1/account/forgot-password devuelve un token temporal de restablecimiento (tempToken) directamente en su respuesta API sin requerir ninguna forma de autenticación previa o verificación por correo electrónico.
Un atacante no autenticado que conozca (o pueda enumerar) una dirección de correo electrónico válida puede:
tempToken directamente de la respuesta de la API.Esta vulnerabilidad evita por completo el flujo de verificación basado en correo electrónico, ya que el token se filtra en la respuesta HTTP en lugar de enviarse únicamente a la bandeja de entrada del propietario de la cuenta.
| Punto Final | Método | Propósito |
|---|---|---|
/api/v1/auth/login | POST | Se utiliza para verificar si existe una cuenta de correo electrónico |
/api/v1/account/forgot-password | POST | Desencadena el restablecimiento y filtra tempToken en la respuesta |
/api/v1/account/reset-password | POST | Completa el cambio de contraseña usando el token |
Archivo: CVE-2025-58434_POC.py
requestspip install requests
python3 CVE-2025-58434_POC.py -e <correo_destino> -u <url_destino> [-p <nueva_contraseña>]
| Bandera | Forma Larga | Requerido | Descripción |
|---|---|---|---|
-e | --email | Sí | Dirección de correo electrónico de la cuenta objetivo |
-u | --url | Sí | URL base de la instancia de Flowise |
-p | --password | No | Nueva contraseña a establecer (por defecto password) |
python3 CVE-2025-58434_POC.py -e [email protected] -u https://flowise.example.com -p P@ssw0rd!
[+] El correo [email protected] existe!
[!] Enviando solicitud de olvido de contraseña
[!] Enviando solicitud de restablecimiento de contraseña
[+] Contraseña cambiada exitosamente a: P@ssw0rd!
La API de restablecimiento de contraseña fue diseñada para enviar el tempToken al correo electrónico del usuario, pero el servidor también lo incluía directamente en el cuerpo de la respuesta JSON. Esto significa que cualquier llamante — autenticado o no — recibe el token inmediatamente al realizar la solicitud, haciendo irrelevante el paso del envío por correo electrónico.
Además, la enumeración de correos electrónicos es posible porque el endpoint de inicio de sesión devuelve un mensaje de error distinto ("Correo electrónico o contraseña incorrectos") solo cuando el correo existe, lo que hace trivial confirmar cuentas válidas antes de lanzar el ataque.
tempToken se transmita exclusivamente a través de la dirección de correo electrónico registrada.Esta prueba de concepto se proporciona únicamente con fines educativos y de investigación de seguridad autorizada. El uso de este script contra sistemas sin permiso explícito por escrito es ilegal y poco ético. El autor y los colaboradores no asumen ninguna responsabilidad por su uso indebido.