🇰🇷 한글 설명
Spring Security의 DaoAuthenticationProvider에서 발생하는 취약점으로, 사용자 상태(활성화 여부, 만료 여부, 잠금 여부)를 확인하는 과정에서 타이밍 공격 방어 기제가 우회될 수 있습니다. 이로 인해 비활성화되거나 잠긴 사용자에 대한 정보가 공격자에게 노출될 위험이 있습니다.
💡 쉬운 설명
로그인 시 사용자가 잠겨 있는지 확인하는 과정에서 걸리는 시간 차이를 이용해 사용자 정보를 알아낼 수 있는 보안 약점입니다. 공격자는 이 시간 차이를 분석하여 특정 계정의 상태를 유추할 수 있습니다.
🇺🇸 원문 (English)
Vulnerability in Spring Spring Security. If an application is using the UserDetails#isEnabled, #isAccountNonExpired, or #isAccountNonLocked user attributes, to enable, expire, or lock users, then DaoAuthenticationProvider's timing attack defense can be bypassed for users who are disabled, expired, or locked.This issue affects Spring Security: from 5.7.0 through 5.7.22, from 5.8.0 through 5.8.24, from 6.3.0 through 6.3.15, from 6.5.0 through 6.5.9, from 7.0.0 through 7.0.4.
📍 영향받는 시스템
Spring Security 5.7.0~5.7.22, 5.8.0~5.8.24, 6.3.0~6.3.15, 6.5.0~6.5.9, 7.0.0~7.0.4
⚔️ 공격 벡터
인증 과정 중 발생하는 응답 시간의 미세한 차이를 측정하는 타이밍 공격(Timing Attack)
🛡️ 대응 방법
Spring Security를 취약점이 해결된 최신 패치 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 결과에서 사용 중인 spring-security의 버전을 확인하여 취약한 버전 범위에 포함되는지 체크합니다.
mvn dependency:tree | grep spring-security