🇰🇷 한글 설명
Spring Security 6.1.x(6.1.7 미만) 및 6.2.x(6.2.2 미만) 버전에서 AuthenticationTrustResolver.isFullyAuthenticated() 메서드를 직접 사용할 때 발생하는 권한 제어 결함입니다. 인증 객체로 null 값이 전달될 경우 메서드가 잘못된 true 값을 반환하여 인증되지 않은 사용자가 인증된 것으로 오인될 수 있습니다.
💡 쉬운 설명
보안 검사 도구가 '로그인 여부'를 확인할 때, 실수로 빈 값(null)을 넣으면 시스템이 이를 '로그인 완료'로 잘못 판단하는 문제입니다. 이로 인해 로그인하지 않은 사용자가 권한이 필요한 페이지에 접속할 위험이 있습니다.
🇺🇸 원문 (English)
In Spring Security, versions 6.1.x prior to 6.1.7 and versions 6.2.x prior to 6.2.2, an application is vulnerable to broken access control when it directly uses the AuthenticationTrustResolver.isFullyAuthenticated(Authentication) method.
Specifically, an application is vulnerable if:
* The application uses AuthenticationTrustResolver.isFullyAuthenticated(Authentication) directly and a null authentication parameter is passed to it resulting in an erroneous true return value.
An application is not vulnerable if any of the following is true:
* The application does not use AuthenticationTrustResolver.isFullyAuthenticated(Authentication) directly.
* The application does not pass null to AuthenticationTrustResolver.isFullyAuthenticated
* The application only uses isFullyAuthenticated via Method Security https://docs.spring.io/spring-security/reference/servlet/authorization/method-security.html or HTTP Request Security https://docs.spring.io/spring-security/reference/servlet/authorization/authorize-http-requests.html
📍 영향받는 시스템
Spring Security 6.1.x < 6.1.7, 6.2.x < 6.2.2
⚔️ 공격 벡터
인증 객체(Authentication)를 직접 다루는 로직에 null 값을 주입하여 인증 우회 시도
🛡️ 대응 방법
Spring Security를 6.1.7 또는 6.2.2 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 spring-security-core의 버전을 확인하여 6.1.7 또는 6.2.2 미만인지 체크합니다.
mvn dependency:tree | grep 'spring-security-core'