
DifuseHQ Kalmia CMS версии 0.2.0 уязвима для перечисления пользователей через различимые ответы об ошибках в конечной точке аутентификации /kal-api/auth/jwt/create.
CVE ID: CVE-2025-65899
Продукт: DifuseHQ Kalmia CMS
Затронутая версия: 0.2.0
Тип уязвимости: Observable Response Discrepancy
Требуемые привилегии: Нет
Позволяет неаутентифицированным злоумышленникам перечислять действительные имена пользователей, что открывает возможности для целевых атак типа password spraying, credential stuffing и обнаружения учётных записей.
Ожидает одобрения сопровождающего - https://github.com/DifuseHQ/Kalmia/pull/34
Kalmia CMS версии 0.2.0 содержит уязвимость перечисления пользователей в механизме аутентификации. Приложение возвращает разные сообщения об ошибках для несуществующих пользователей (user_not_found) и для существующих пользователей с неверным паролем (invalid_password). Это наблюдаемое расхождение ответов позволяет неаутентифицированным злоумышленникам перечислять действительные имена пользователей в системе, что может быть использовано для последующих целевых атак, таких как password spraying или социальная инженерия.
/kal-api/auth/jwt/createСистема аутентификации не обеспечивает единообразных ответов об ошибках, раскрывая информацию о существовании учётных записей через различные сообщения об ошибках:
{"message": "user_not_found"}{"message": "invalid_password"}Такое различие в ответах позволяет злоумышленникам отличать несуществующие учётные записи от действительных.
Злоумышленник пытается аутентифицироваться с несуществующим именем пользователя и наблюдает ответ сервера User not found.
Используя Burp Suite для перехвата и анализа запроса аутентификации, злоумышленник подтверждает, что сервер возвращает user_not_found для несуществующих имён пользователей, что указывает на отсутствие пользователя в системе.
При проверке существующего имени пользователя с неверным паролем Burp Suite перехватывает ответ сервера с invalid_password, что подтверждает существование данного имени пользователя в системе.
Анализ серверной логики аутентификации выявляет ошибочную реализацию, которая возвращает разные сообщения об ошибках:
user_not_foundinvalid_passwordЭтот последовательный процесс проверки создаёт наблюдаемое расхождение, которое позволяет перечислять пользователей.
Скрипт cve-2025-65899.py автоматизирует процесс перечисления пользователей:
python cve-2025-65899.py <TARGET_URL> [OPTIONS]
url: базовый URL целевой Kalmia CMS (обязательный)-u, --user: отдельное имя пользователя для проверки-p, --password: пароль для тестирования (обязательный)-w, --wordlist: файл со списком слов для массового перечисления пользователей# 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
user_not_found)Отказ от ответственности: Эта информация предоставлена исключительно в образовательных и защитных целях. Пользователи несут ответственность за получение соответствующего разрешения перед тестированием любых систем.