🇰🇷 한글 설명
Sun JDK 1.6 이전 버전의 java.util.regex.Pattern.compile 메서드와 Spring Framework, dm Server의 정규식 처리에서 다중 선택적 그룹을 포함한 긴 정규식으로 인한 알고리즘 복잡성 취약점입니다. 공격자가 악의적인 직렬화 데이터를 전송하여 과도한 CPU 소비로 거부 서비스를 야기할 수 있습니다.
💡 쉬운 설명
복잡한 정규식 패턴을 처리할 때 Java가 극도로 많은 CPU를 사용하여 서버가 느려지거나 중단됩니다. 공격자가 의도적으로 복잡한 패턴을 보내면 서버 전체가 먹통이 될 수 있습니다.
🇺🇸 원문 (English)
Algorithmic complexity vulnerability in the java.util.regex.Pattern.compile method in Sun Java Development Kit (JDK) before 1.6, when used with spring.jar in SpringSource Spring Framework 1.1.0 through 2.5.6 and 3.0.0.M1 through 3.0.0.M2 and dm Server 1.0.0 through 1.0.2, allows remote attackers to cause a denial of service (CPU consumption) via serializable data with a long regex string containing multiple optional groups, a related issue to CVE-2004-2540.
📍 영향받는 시스템
Sun JDK < 1.6, Spring Framework 1.1.0~2.5.6 및 3.0.0.M1~M2, dm Server 1.0.0~1.0.2
⚔️ 공격 벡터
다중 선택적 그룹이 포함된 긴 정규식 문자열이 있는 직렬화 데이터를 원격으로 전송
🛡️ 대응 방법
Sun JDK를 1.6 이상으로 업그레이드, Spring Framework 및 dm Server를 패치된 버전으로 업데이트
🔧 검증 코드
JDK 버전이 1.5 이하 출력 시 취약, 1.6 이상이면 안전. pom.xml에서 spring-framework 버전도 확인 필요
java -version 2>&1 | grep -oE '1\.[0-5]|version'