
DifuseHQ Kalmia CMS versione 0.2.0 è vulnerabile all'enumerazione degli utenti tramite risposte di errore distinguibili nell'endpoint di autenticazione /kal-api/auth/jwt/create.
ID CVE: CVE-2025-65899
Prodotto: DifuseHQ Kalmia CMS
Versione Affetta: 0.2.0
Tipo di Vulnerabilità: Discrepanza di Risposta Osservabile
Privilegi Richiesti: Nessuno
Consente ad attaccanti non autenticati di enumerare nomi utente validi, abilitando attacchi mirati di password spraying, credential stuffing e scoperta di account.
In attesa dell'approvazione del maintainer - https://github.com/DifuseHQ/Kalmia/pull/34
Kalmia CMS versione 0.2.0 contiene una vulnerabilità di enumerazione degli utenti nel suo meccanismo di autenticazione. L'applicazione restituisce messaggi di errore diversi per utenti non validi (user_not_found) rispetto a utenti validi con password errate (invalid_password). Questa discrepanza di risposta osservabile consente ad attaccanti non autenticati di enumerare nomi utente validi sul sistema, che può essere sfruttata per successivi attacchi mirati come password spraying o ingegneria sociale.
/kal-api/auth/jwt/createIl sistema di autenticazione non implementa risposte di errore coerenti, rivelando informazioni sull'esistenza degli account utente attraverso messaggi di errore differenti:
{"message": "user_not_found"}{"message": "invalid_password"}Questa differenza nelle risposte consente agli attaccanti di distinguere tra account utente inesistenti e validi.
L'attaccante tenta di autenticarsi con un nome utente inesistente e osserva la risposta del server che restituisce User not found.
Usando Burp Suite per intercettare e analizzare la richiesta di autenticazione, l'attaccante conferma che il server restituisce user_not_found per nomi utente non validi, indicando che l'utente non esiste nel sistema.
Quando si testa con un nome utente valido ma una password errata, Burp Suite cattura la risposta del server che mostra invalid_password, confermando che il nome utente esiste nel sistema.
L'analisi della logica di autenticazione backend rivela l'implementazione difettosa che restituisce messaggi di errore differenti:
user_not_foundinvalid_passwordQuesto processo di validazione sequenziale crea la discrepanza osservabile che consente l'enumerazione degli utenti.
Lo script cve-2025-65899.py automatizza il processo di enumerazione degli utenti:
python cve-2025-65899.py <TARGET_URL> [OPTIONS]
url: URL base di Kalmia CMS di destinazione (obbligatorio)-u, --user: Nome utente singolo da testare-p, --password: Password da usare per il test (obbligatoria)-w, --wordlist: File di wordlist per l'enumerazione bulk degli utenti# Test if specific user exists
python cve-2025-65899.py http://target.com:2727 -u admin -p wrongpass
# Results:
# [+] Valid user: admin (if user exists)
# OR
# (no output if user doesn't exist)
# Enumerate users from wordlist
python cve-2025-65899.py http://target.com:2727 -w users.txt -p wrongpass
# Create a simple wordlist
echo -e "admin\nuser\nadministrator\ntest\nguest" > users.txt
Disclaimer: Queste informazioni sono fornite solo a scopo educativo e difensivo. Gli utenti sono responsabili di assicurarsi di avere la dovuta autorizzazione prima di testare qualsiasi sistema.