🇰🇷 한글 설명
NTFS 파일 시스템을 사용하는 네트워크 위치에서 리소스를 제공할 때, 특정 설정에서 JSP 소스 코드가 노출될 수 있는 취약점입니다. 이는 Windows API의 일관성 없는 동작으로 인해 JRE API의 File.getCanonicalPath() 함수가 예상치 못한 방식으로 작동하면서 발생합니다.
💡 쉬운 설명
해커가 웹 서버의 설정 허점을 이용해 서버 내부의 중요한 프로그램 소스 코드를 몰래 훔쳐볼 수 있는 문제입니다. 윈도우 운영체제와 자바 프로그램 사이의 통신 오류를 악용한 사례입니다.
🇺🇸 원문 (English)
When serving resources from a network location using the NTFS file system, Apache Tomcat versions 10.0.0-M1 to 10.0.0-M9, 9.0.0.M1 to 9.0.39, 8.5.0 to 8.5.59 and 7.0.0 to 7.0.106 were susceptible to JSP source code disclosure in some configurations. The root cause was the unexpected behaviour of the JRE API File.getCanonicalPath() which in turn was caused by the inconsistent behaviour of the Windows API (FindFirstFileW) in some circumstances.
📍 영향받는 시스템
Apache Tomcat 10.0.0-M1 ~ 10.0.0-M9, 9.0.0.M1 ~ 9.0.39, 8.5.0 ~ 8.5.59, 7.0.0 ~ 7.0.106
⚔️ 공격 벡터
네트워크 위치의 NTFS 파일 시스템을 이용한 특수 경로 요청을 통한 JSP 소스 코드 탈취
🛡️ 대응 방법
취약점이 해결된 최신 버전의 Apache Tomcat으로 업데이트 수행
🔧 검증 코드
출력된 catalina.jar 파일의 버전 정보가 취약한 버전 범위에 포함되는지 확인
java -jar tomcat-version-check.jar || find / -name 'catalina.jar' -exec grep -H 'Version' {} \;