
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. Comprend un script de preuve de concept et des recommandations d'atténuation.
ID CVE : CVE-2025-58434
Logiciel affecté : Flowise AI
Versions vulnérables : <= 3.0.5
Version corrigée : 3.0.6 et ultérieures
Gravité : Critique
Auteur : arensballiu
Date : 2025
Les versions de Flowise AI jusqu'à 3.0.5 incluse contiennent une faille d'authentification défaillante dans le flux de réinitialisation de mot de passe. Le point de terminaison /api/v1/account/forgot-password renvoie un jeton de réinitialisation temporaire (tempToken) directement dans sa réponse API, sans exiger 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 au lieu d'être envoyé uniquement à la boîte de réception de l'e-mail du propriétaire du compte.
| Point de terminaison | 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 à l'aide du jeton |
Fichier : CVE-2025-58434_POC.py
requestspip install requests
python3 CVE-2025-58434_POC.py -e <target_email> -u <target_url> [-p <new_password>]
| Option | 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) |
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 était conçue pour envoyer le tempToken à l'e-mail de l'utilisateur, mais le serveur l'incluait également 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 effectué la requête, rendant l'étape d'envoi par e-mail sans objet.
De plus, l'énumération des e-mails est possible car le point de terminaison de connexion renvoie un message d'erreur distinct ("Incorrect Email or Password") uniquement lorsque l'e-mail existe, ce qui permet de confirmer facilement les comptes valides avant de lancer l'attaque.
tempToken soit transmis exclusivement via l'adresse e-mail enregistrée.Cette preuve de concept est fournie à des fins éducatives et de recherche en sécurité autorisée uniquement. 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 de mauvaise utilisation.