
Exploit de réinitialisation de mot de passe non authentifié pour Flowise AI ≤ 3.0.5. Exploite le point de terminaison /api/v1/account/forgot-password pour modifier le mot de passe de n'importe quel utilisateur sans authentification préalable. Inclut un script de preuve de concept et des directives d'atténuation.
ID CVE : CVE-2025-58434
Logiciel concerné : Flowise AI
Versions vulnérables : <= 3.0.5
Version corrigée : 3.0.6 et ultérieures
Sévérité : Critique
Auteur : r3nsi15
Date : 2025
Les versions de Flowise AI jusqu'à la 3.0.5 incluse contiennent une faille d'authentification défaillante dans le flux de réinitialisation de mot de passe. Le point d'accès /api/v1/account/forgot-password renvoie un jeton de réinitialisation temporaire (tempToken) directement dans sa réponse API sans nécessiter aucune forme d'authentification préalable ni de vérification par e-mail.
Un attaquant non authentifié qui connaît (ou peut énumérer) une adresse e-mail valide peut :
tempToken directement de la réponse API.Cette vulnérabilité contourne entièrement le flux de vérification par e-mail prévu, car le jeton est divulgué dans la réponse HTTP plutôt que d'être envoyé uniquement dans la boîte de réception de l'e-mail du propriétaire du compte.
Fichier : CVE-2025-58434_POC.py
requestspip install requests
python3 CVE-2025-58434_POC.py -e <target_email> -u <target_url> [-p <new_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 de réinitialisation de mot de passe a été conçue pour envoyer le tempToken par e-mail à l'utilisateur, mais le serveur l'a également inclus directement dans le corps de la réponse JSON. Cela signifie que tout appelant — authentifié ou non — reçoit le jeton immédiatement après avoir fait la demande, rendant l'étape d'envoi par e-mail sans importance.
De plus, l'énumération des e-mails est possible car le point d'accès de connexion renvoie un message d'erreur distinct ("Incorrect Email or Password") uniquement lorsque l'e-mail existe, ce qui rend trivial la confirmation de comptes valides avant de lancer l'attaque.
tempToken est transmis exclusivement via l'adresse e-mail enregistrée.Cette preuve de concept est fournie uniquement à des fins éducatives et de recherche en sécurité autorisée. L'utilisation de ce script contre des systèmes sans autorisation écrite explicite est illégale et contraire à l'éthique. L'auteur et les contributeurs déclinent toute responsabilité en cas d'utilisation abusive.
| Endpoint | Méthode | Objectif |
|---|
/api/v1/auth/login | POST | Utilisé pour vérifier si un compte e-mail existe |
/api/v1/account/forgot-password | POST | Déclenche la réinitialisation et divulgue le tempToken dans la réponse |
/api/v1/account/reset-password | POST | Finalise le changement de mot de passe en utilisant le jeton |
| Drapeau | Forme longue | Requis | Description |
|---|
-e | --email | Oui | Adresse e-mail du compte cible |
-u | --url | Oui | URL de base de l'instance Flowise |
-p | --password | Non | Nouveau mot de passe à définir (par défaut password) |