
DifuseHQ Kalmia CMS version 0.2.0 est vulnérable à l'énumération d'utilisateurs via des réponses d'erreur distinctives dans le point de terminaison d'authentification /kal-api/auth/jwt/create.
CVE ID : CVE-2025-65899
Produit : DifuseHQ Kalmia CMS
Version affectée : 0.2.0
Type de vulnérabilité : Discordance de réponse observable
Privilèges requis : Aucun
Permet à des attaquants non authentifiés d'énumérer des noms d'utilisateur valides, facilitant des attaques ciblées de pulvérisation de mots de passe, de bourrage d'identifiants et de découverte de comptes.
En attente d'approbation du mainteneur - https://github.com/DifuseHQ/Kalmia/pull/34
Kalmia CMS version 0.2.0 contient une vulnérabilité d'énumération d'utilisateurs dans son mécanisme d'authentification. L'application renvoie des messages d'erreur différents pour des utilisateurs invalides (user_not_found) par rapport aux utilisateurs valides avec des mots de passe incorrects (invalid_password). Cette discordance de réponse observable permet à des attaquants non authentifiés d'énumérer les noms d'utilisateur valides sur le système, ce qui peut être exploité pour des attaques ciblées ultérieures telles que la pulvérisation de mots de passe ou l'ingénierie sociale.
/kal-api/auth/jwt/createLe système d'authentification ne parvient pas à implémenter des réponses d'erreur cohérentes, révélant des informations sur l'existence de comptes utilisateur via des messages d'erreur différents :
{"message": "user_not_found"}{"message": "invalid_password"}Cette différence dans les réponses permet aux attaquants de distinguer les comptes utilisateur inexistants des comptes valides.
L'attaquant tente de s'authentifier avec un nom d'utilisateur inexistant et observe la réponse du serveur renvoyant User not found.
En utilisant Burp Suite pour intercepter et analyser la requête d'authentification, l'attaquant confirme que le serveur renvoie user_not_found pour des noms d'utilisateur invalides, indiquant que l'utilisateur n'existe pas dans le système.
En testant avec un nom d'utilisateur valide mais un mot de passe incorrect, Burp Suite capture la réponse du serveur montrant invalid_password, confirmant que le nom d'utilisateur existe dans le système.
L'analyse de la logique d'authentification backend révèle l'implémentation défectueuse qui renvoie des messages d'erreur différents :
user_not_foundinvalid_passwordCe processus de validation séquentielle crée la discordance observable qui permet l'énumération des utilisateurs.
Le script cve-2025-65899.py automatise le processus d'énumération des utilisateurs :
python cve-2025-65899.py <TARGET_URL> [OPTIONS]
url : URL de base de Kalmia CMS cible (obligatoire)-u, --user : Nom d'utilisateur unique à tester-p, --password : Mot de passe à utiliser pour le test (obligatoire)-w, --wordlist : Fichier de liste de mots pour l'énumération en masse# Tester si un utilisateur spécifique existe
python cve-2025-65899.py http://target.com:2727 -u admin -p wrongpass
# Résultats :
# [+] Utilisateur valide : admin (si l'utilisateur existe)
# OU
# (aucune sortie si l'utilisateur n'existe pas)
# Énumérer les utilisateurs à partir d'une liste de mots
python cve-2025-65899.py http://target.com:2727 -w users.txt -p wrongpass
# Créer une liste de mots simple
echo -e "admin\nuser\nadministrator\ntest\nguest" > users.txt
user_not_found)Avertissement : Ces informations sont fournies à des fins éducatives et défensives uniquement. Les utilisateurs sont responsables de s'assurer qu'ils disposent de l'autorisation appropriée avant de tester tout système.