🇰🇷 한글 설명
Apache Tomcat의 HTTP 요청 라인 파싱 과정에서 유효하지 않은 문자를 허용하는 취약점으로, 특정 프록시와의 조합에서 HTTP 응답 데이터 주입이 가능합니다. 웹 캐시 포이즈닝, XSS 공격, 타 사용자 요청의 민감 정보 유출을 초래할 수 있습니다.
💡 쉬운 설명
Tomcat 웹 서버가 특정 문자를 잘못 처리하면서 프록시를 거쳐 공격자가 다른 사용자의 응답에 악성 데이터를 삽입할 수 있습니다. 결과적으로 웹 캐시 변조, XSS 공격, 정보 유출이 발생합니다.
🇺🇸 원문 (English)
The code in Apache Tomcat 9.0.0.M1 to 9.0.0.M11, 8.5.0 to 8.5.6, 8.0.0.RC1 to 8.0.38, 7.0.0 to 7.0.72, and 6.0.0 to 6.0.47 that parsed the HTTP request line permitted invalid characters. This could be exploited, in conjunction with a proxy that also permitted the invalid characters but with a different interpretation, to inject data into the HTTP response. By manipulating the HTTP response the attacker could poison a web-cache, perform an XSS attack and/or obtain sensitive information from requests other then their own.
📍 영향받는 시스템
Apache Tomcat 6.0.0-6.0.47, 7.0.0-7.0.72, 8.0.0.RC1-8.0.38, 8.5.0-8.5.6, 9.0.0.M1-9.0.0.M11
⚔️ 공격 벡터
HTTP 요청 라인의 유효하지 않은 문자를 악용하여 프록시와 Tomcat의 파싱 차이를 이용한 응답 헤더/바디 주입
🛡️ 대응 방법
Tomcat을 최신 버전으로 업그레이드 (6.0.48+, 7.0.73+, 8.0.39+, 8.5.7+, 9.0.0.M12+)
🔧 검증 코드
Tomcat 버전이 취약한 범위(예: 8.5.6 이하)에 해당하면 즉시 업그레이드 필요
find / -path '*/tomcat*/lib/catalina.jar' 2>/dev/null | xargs -I {} bash -c 'unzip -p {} META-INF/MANIFEST.MF 2>/dev/null | grep Implementation-Version'