🇰🇷 한글 설명
Spring Framework의 SourceHttpMessageConverter가 XML 외부 엔티티 해석을 비활성화하지 않아 발생하는 XXE 취약점입니다. 공격자는 악의적인 XML을 전송하여 서버의 임의 파일을 읽거나 서비스 거부 공격을 수행할 수 있으며, CSRF 공격도 가능합니다.
💡 쉬운 설명
Spring 웹 프레임워크의 XML 처리 기능이 보안 검증을 제대로 하지 못해 공격자가 서버 파일을 읽거나 시스템을 마비시킬 수 있습니다. 악의적인 XML 데이터를 HTTP 요청으로 보내면 됩니다.
🇺🇸 원문 (English)
The SourceHttpMessageConverter in Spring MVC in Spring Framework before 3.2.5 and 4.0.0.M1 through 4.0.0.RC1 does not disable external entity resolution, which allows remote attackers to read arbitrary files, cause a denial of service, and conduct CSRF attacks via crafted XML, aka an XML External Entity (XXE) issue, and a different vulnerability than CVE-2013-4152 and CVE-2013-7315.
📍 영향받는 시스템
Spring Framework 3.2.5 이전, 4.0.0.M1~4.0.0.RC1 버전
⚔️ 공격 벡터
악의적인 XML 페이로드를 포함한 HTTP 요청 전송으로 XXE 공격 수행 (예: <!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>)
🛡️ 대응 방법
Spring Framework를 3.2.5 이상 또는 4.0.0.RC2 이상으로 업그레이드
🔧 검증 코드
jar 파일의 버전이 3.2.5 이상이거나 4.0.0.RC2 이상이면 안전함. M1~RC1 사이 버전은 취약함.
find / -name "spring-webmvc*.jar" 2>/dev/null | head -1 | xargs -I {} jar -xf {} META-INF/MANIFEST.MF -O 2>/dev/null | grep -i version || dpkg -l 2>/dev/null | grep -i spring