🇰🇷 한글 설명
Jenkins의 loadUserByUsername 함수에 존재하는 사용자 열거 취약점으로, 실패한 로그인 시도 시 오류 응답의 차이를 통해 원격 공격자가 유효한 사용자 계정 존재 여부를 파악할 수 있습니다. 이는 비밀번호 추측 공격(brute force)의 사전 단계로 악용될 수 있습니다.
💡 쉬운 설명
Jenkins 로그인 화면에서 존재하지 않는 사용자와 잘못된 비밀번호를 입력했을 때 서로 다른 오류 메시지가 나타나, 공격자가 유효한 사용자 목록을 파악할 수 있습니다. 이 정보는 이후 계정 탈취 시도에 활용됩니다.
🇺🇸 원문 (English)
The loadUserByUsername function in hudson/security/HudsonPrivateSecurityRealm.java in Jenkins before 1.551 and LTS before 1.532.2 allows remote attackers to determine whether a user exists via vectors related to failed login attempts.
📍 영향받는 시스템
Jenkins 1.551 이전 버전, Jenkins LTS 1.532.2 이전 버전
⚔️ 공격 벡터
실패한 로그인 시도 응답 분석을 통한 사용자 존재 여부 판단 (user enumeration via timing/response differentiation)
🛡️ 대응 방법
Jenkins를 1.551 이상 또는 LTS 1.532.2 이상으로 업그레이드
🔧 검증 코드
반환된 version 필드의 버전 번호가 1.551 미만 또는 LTS 1.532.2 미만이면 취약한 상태입니다.
curl -s http://localhost:8080/api/json 2>/dev/null | grep -o '"version":"[^"]*"'