🇰🇷 한글 설명
Spring Data KeyValue의 SpEL Injection 취약점으로, 정제되지 않은 사용자 입력이 Sort 파라미터로 전달될 경우 SpelPropertyComparator를 통해 임의 코드가 실행될 수 있습니다. 이 취약점은 Spring Data KeyValue 및 Redis의 여러 구버전에서 발생합니다.
💡 쉬운 설명
사용자가 입력한 값을 시스템이 안전하게 처리하지 않아 해커가 원격에서 코드를 실행할 수 있는 구멍이 있습니다. 이는 데이터베이스 관련 라이브러리의 정렬 기능에서 발생하는 문제입니다.
🇺🇸 원문 (English)
A SpEL Injection vulnerability exists in the Spring Data KeyValue if unsanitized user input is passed as Sort into a repository query method that delegates evaluation to the SpelPropertyComparator.
Affected versions:
Spring Data KeyValue / Spring Data Redis 4.0.0 through 4.0.5; 3.5.0 through 3.5.11; 3.4.0 through 3.4.14; 3.3.0 through 3.3.16; 3.2.0 through 3.2.15; 3.1.0 through 3.1.14; 3.0.0 through 3.0.15; 2.7.0 through 2.7.19.
📍 영향받는 시스템
Spring Data KeyValue / Redis 4.0.0-4.0.5, 3.5.0-3.5.11, 3.4.0-3.4.14, 3.3.0-3.3.16, 3.2.0-3.2.15, 3.1.0-3.1.14, 3.0.0-3.0.15, 2.7.0-2.7.19
⚔️ 공격 벡터
Repository 쿼리 메서드의 Sort 파라미터에 악의적인 SpEL 표현식을 포함하는 사용자 입력을 전달하여 원격 코드 실행을 유도합니다.
🛡️ 대응 방법
Spring Data KeyValue 및 Redis를 해당 취약점이 패치된 최신 버전으로 즉시 업그레이드하십시오.
🔧 검증 코드
출력된 버전 번호가 취약한 범위(예: 4.0.0~4.0.5 등)에 포함되는지 확인하여 영향을 받는지 판단합니다.
mvn dependency:tree -Dincludes=org.springframework.data:spring-data-keyvalue 2>/dev/null | grep -E 'spring-data-keyword'