🇰🇷 한글 설명
Spring Security의 queryable text encryptor 구현 시 CBC 모드에서 고정된 null 초기화 벡터(IV)를 사용합니다. 이로 인해 암호화된 데이터에 접근할 수 있는 공격자가 사전 공격을 통해 암호화되지 않은 원래 값을 유추할 수 있습니다.
💡 쉬운 설명
암호화할 때 사용하는 '무작위 암호 키 보조 도구'가 항상 똑같은 값으로 고정되어 있는 문제입니다. 이 때문에 공격자가 반복적인 패턴을 분석하여 암호를 풀어낼 위험이 있습니다.
🇺🇸 원문 (English)
Spring Security versions 5.3.x prior to 5.3.2, 5.2.x prior to 5.2.4, 5.1.x prior to 5.1.10, 5.0.x prior to 5.0.16 and 4.2.x prior to 4.2.16 use a fixed null initialization vector with CBC Mode in the implementation of the queryable text encryptor. A malicious user with access to the data that has been encrypted using such an encryptor may be able to derive the unencrypted values using a dictionary attack.
📍 영향받는 시스템
Spring Security 5.3.x (< 5.3.2), 5.2.x (< 5.2.4), 5.1.x (< 5.1.10), 5.0.x (< 5.0.16), 4.2.x (< 4.2.16)
⚔️ 공격 벡터
암호화된 데이터에 접근 권한이 있는 공격자가 사전 공격(Dictionary Attack)을 수행하여 데이터 복구
🛡️ 대응 방법
Spring Security를 취약점이 해결된 최신 버전(5.3.2, 5.2.4, 5.1.10, 5.0.16, 4.2.16 이상)으로 업데이트
🔧 검증 코드
출력된 spring-security-core의 버전이 취약한 버전 범위에 포함되는지 확인
mvn dependency:list | grep spring-security-core