🇰🇷 한글 설명
Apache Tomcat의 Realm 구현에서 존재하지 않는 사용자명이 입력되면 비밀번호 검증 과정을 건너뛰므로, 존재하는 사용자와 존재하지 않는 사용자의 응답 시간 차이를 이용한 타이밍 공격으로 유효한 사용자명을 식별할 수 있습니다. 기본 설정의 LockOutRealm이 이를 부분적으로 완화합니다.
💡 쉬운 설명
Tomcat이 없는 계정은 빠르게 거절하고 있는 계정은 느리게 거절해서 반응 시간을 보고 누가 실제 계정인지 알아낼 수 있습니다. 공격자가 이를 이용해 유효한 사용자명 목록을 수집할 수 있습니다.
🇺🇸 원문 (English)
The Realm implementations in Apache Tomcat versions 9.0.0.M1 to 9.0.0.M9, 8.5.0 to 8.5.4, 8.0.0.RC1 to 8.0.36, 7.0.0 to 7.0.70 and 6.0.0 to 6.0.45 did not process the supplied password if the supplied user name did not exist. This made a timing attack possible to determine valid user names. Note that the default configuration includes the LockOutRealm which makes exploitation of this vulnerability harder.
📍 영향받는 시스템
Apache Tomcat 6.0.0-6.0.45, 7.0.0-7.0.70, 8.0.0.RC1-8.0.36, 8.5.0-8.5.4, 9.0.0.M1-9.0.0.M9
⚔️ 공격 벡터
로그인 시도 시 존재하지 않는 사용자와 실제 사용자의 응답 시간을 측정하여 유효한 사용자명 식별
🛡️ 대응 방법
Tomcat을 패치된 버전으로 업그레이드: 6.0.46+, 7.0.71+, 8.0.37+, 8.5.5+, 9.0.0.M10+
🔧 검증 코드
출력된 Tomcat 버전 번호가 패치된 버전 이상인지 확인하거나, 버전이 표시되지 않으면 Tomcat 설치 경로 확인 필요
cat /opt/tomcat/RELEASE-NOTES 2>/dev/null | head -1 || dpkg -l tomcat* 2>/dev/null | tail -1 || rpm -qa tomcat 2>/dev/null