
DifuseHQ Kalmia CMS 버전 0.2.0은 /kal-api/auth/jwt/create 인증 엔드포인트에서 구별 가능한 오류 응답을 통해 사용자 열거에 취약합니다.
CVE ID: CVE-2025-65899
제품: DifuseHQ Kalmia CMS
영향받는 버전: 0.2.0
취약점 유형: 관찰 가능한 응답 불일치
필요 권한: 없음
인증되지 않은 공격자가 유효한 사용자 이름을 열거할 수 있게 하여, 표적 암호 스프레이 공격, 자격 증명 스터핑, 계정 발견 공격을 가능하게 합니다.
유지보수자 승인 대기 중 - https://github.com/DifuseHQ/Kalmia/pull/34
Kalmia CMS 버전 0.2.0은 인증 메커니즘에 사용자 열거 취약점을 포함하고 있습니다. 애플리케이션은 유효하지 않은 사용자(user_not_found)와 유효한 사용자이지만 잘못된 비밀번호(invalid_password)에 대해 서로 다른 오류 메시지를 반환합니다. 이 관찰 가능한 응답 불일치로 인해 인증되지 않은 공격자가 시스템에서 유효한 사용자 이름을 열거할 수 있으며, 이는 암호 스프레이 또는 사회 공학과 같은 후속 표적 공격에 활용될 수 있습니다.
/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_found 반환invalid_password 반환이 순차적 검증 프로세스가 사용자 열거를 가능하게 하는 관찰 가능한 불일치를 만듭니다.
cve-2025-65899.py 스크립트는 사용자 열거 과정을 자동화합니다.
python cve-2025-65899.py <TARGET_URL> [OPTIONS]
url: 대상 Kalmia CMS 기본 URL (필수)-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
면책 조항: 이 정보는 교육 및 방어 목적으로만 제공됩니다. 사용자는 시스템을 테스트하기 전에 적절한 권한을 획득했는지 확인할 책임이 있습니다.