
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
Sévérité : Critique
Auteur : arensballiu
Date : 2025
Les versions de Flowise AI jusqu'à 3.0.5 incluses 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 plutôt que 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 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 pertinence.
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 trivialement des 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.