🇰🇷 한글 설명
AesBytesEncryptor의 두 인자 생성자를 사용하거나, IV 생성자가 null이고 CBC 모드를 사용할 경우 모든 비트가 0인 초기화 벡터(IV)를 사용하여 데이터를 암호화합니다. 이로 인해 암호화된 데이터의 예측 가능성이 높아지는 보안 취약점이 발생합니다.
💡 쉬운 설명
암호화를 할 때 매번 바뀌어야 하는 '비밀 열쇠의 시작값'이 항상 0으로 고정되어 사용되는 문제입니다. 이로 인해 해커가 암호화된 내용을 추측하기가 훨씬 쉬워집니다.
🇺🇸 원문 (English)
Applications using AesBytesEncryptor with the two-argument constructor or when passing a null IV generator and CBC as the encryption mode encrypt data with AES/CBC using a null (all-zero) initialization vector.
Spring Security 7.1.0
Spring Security 7.0.0 - 7.0.6
Spring Security 6.5.0 - 6.5.11
Spring Security 6.4.0 - 6.4.18
Spring Security 5.8.0 - 5.8.27
Spring Security 5.7.0 - 5.7.25
📍 영향받는 시스템
Spring Security 7.1.0, 7.0.0-7.0.6, 6.5.0-6.5.11, 6.4.0-6.4.18, 5.8.0-5.8.27, 5.7.0-5.7.25
⚔️ 공격 벡터
동일한 평문에 대해 항상 동일한 암호문이 생성되는 특성을 이용한 암호 분석 공격
🛡️ 대응 방법
Spring Security를 취약점이 해결된 최신 패치 버전으로 업데이트하거나, IV 생성자를 명시적으로 지정하여 사용하십시오.
🔧 검증 코드
출력된 결과에서 현재 프로젝트에 사용 중인 Spring Security의 버전을 확인하여 취약 범위에 포함되는지 체크합니다.
mvn dependency:tree | grep spring-security-core