
Exploit di reimpostazione password non autenticato per Flowise AI ≤ 3.0.5. Sfrutta l'endpoint /api/v1/account/forgot-password per cambiare la password di qualsiasi utente senza autenticazione preventiva. Include uno script proof-of-concept e linee guida di mitigazione.
ID CVE: CVE-2025-58434
Software interessato: Flowise AI
Versioni vulnerabili: <= 3.0.5
Versione corretta: 3.0.6 e successive
Gravità: Critica
Autore: arensballiu
Data: 2025
Le versioni di Flowise AI fino alla 3.0.5 inclusa contengono una falla di autenticazione nel flusso di reimpostazione della password. L'endpoint /api/v1/account/forgot-password restituisce un token di reimpostazione temporaneo (tempToken) direttamente nella risposta API, senza richiedere alcuna forma di autenticazione preventiva o verifica via email.
Un attaccante non autenticato che conosce (o riesce a enumerare) un indirizzo email valido può:
tempToken direttamente dalla risposta API.Questa vulnerabilità aggira completamente il flusso di verifica previsto via email, poiché il token viene divulgato nella risposta HTTP anziché essere inviato esclusivamente alla casella di posta del proprietario dell'account.
| Endpoint | Metodo | Scopo |
|---|---|---|
/api/v1/auth/login | POST | Utilizzato per verificare se un account email esiste |
/api/v1/account/forgot-password | POST | Attiva la reimpostazione e divulga il tempToken nella risposta |
/api/v1/account/reset-password | POST | Completa il cambio password utilizzando il token |
File: CVE-2025-58434_POC.py
requestspip install requests
python3 CVE-2025-58434_POC.py -e <target_email> -u <target_url> [-p <new_password>]
| Flag | Forma estesa | Obbligatorio | Descrizione |
|---|---|---|---|
-e | --email | Sì | Indirizzo email dell'account di destinazione |
-u | --url | Sì | URL di base dell'istanza Flowise |
-p | --password | No | Nuova password da impostare (predefinita: 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!
L'API di reimpostazione della password era progettata per inviare il tempToken all'email dell'utente, ma il server lo includeva anche direttamente nel corpo della risposta JSON. Ciò significa che qualsiasi chiamante, autenticato o meno, riceve immediatamente il token al momento della richiesta, rendendo irrilevante la fase di invio via email.
Inoltre, l'enumerazione delle email è possibile perché l'endpoint di login restituisce un messaggio di errore distinto ("Incorrect Email or Password") solo quando l'email esiste, rendendo banale confermare account validi prima di lanciare l'attacco.
tempToken sia trasmesso esclusivamente tramite l'indirizzo email registrato.Questo proof of concept è fornito esclusivamente a scopo didattico e di ricerca sulla sicurezza autorizzata. L'uso di questo script contro sistemi senza esplicita autorizzazione scritta è illegale e non etico. L'autore e i contributori non si assumono alcuna responsabilità per un uso improprio.