🇰🇷 한글 설명
Apache Tomcat에서 발생하는 TOCTOU(Time-of-check Time-of-use) 레이스 컨디션 취약점입니다. 대소문자를 구분하지 않는 파일 시스템에서 기본 서블릿의 쓰기 기능이 활성화된 경우 발생할 수 있습니다.
💡 쉬운 설명
파일을 확인하는 시점과 실제 사용하는 시점 사이에 차이가 생겨 발생하는 보안 허점입니다. 공격자가 이 틈을 이용해 허가되지 않은 파일 조작을 시도할 수 있습니다.
🇺🇸 원문 (English)
Time-of-check Time-of-use (TOCTOU) Race Condition vulnerability in Apache Tomcat.
This issue affects Apache Tomcat: from 11.0.0-M1 through 11.0.1, from 10.1.0-M1 through 10.1.33, from 9.0.0.M1 through 9.0.97.
The following versions were EOL at the time the CVE was created but are
known to be affected: 8.5.0 though 8.5.100. Other, older, EOL versions
may also be affected.
The mitigation for CVE-2024-50379 was incomplete.
Users running Tomcat on a case insensitive file system with the default servlet write enabled (readonly initialisation
parameter set to the non-default value of false) may need additional configuration to fully mitigate CVE-2024-50379 depending on which version of Java they are using with Tomcat:
- running on Java 8 or Java 11: the system property sun.io.useCanonCaches must be explicitly set to false (it defaults to true)
- running on Java 17: the system property sun.io.useCanonCaches, if set, must be set to false (it defaults to false)
- running on Java 21 onwards: no further configuration is required (the system property and the problematic cache have been removed)
Tomcat 11.0.3, 10.1.35 and 9.0.99 onwards will include checks that sun.io.useCanonCaches is set appropriately before allowing the default servlet to be write enabled on a case insensitive file system. Tomcat will also set sun.io.useCanonCaches to false by default where it can.
📍 영향받는 시스템
Apache Tomcat 11.0.0-M1~11.0.1, 10.1.0-M1~10.1.33, 9.0.0.M1~9.0.97, 8.5.0~8.5.100
⚔️ 공격 벡터
대소문자 구분 없는 파일 시스템에서 쓰기 권한이 활성화된 서블릿을 대상으로 레이스 컨디션 공격 수행
🛡️ 대응 방법
Tomcat을 11.0.3, 10.1.35, 9.0.99 이상의 최신 버전으로 업데이트하거나 Java 버전에 따라 sun.io.useCanonCaches 설정을 조정하십시오.
🔧 검증 코드
출력된 Tomcat 버전이 취약한 버전 범위에 포함되는지 확인하십시오.
java -jar /path/to/tomcat/lib/catalina.jar version | grep 'Apache Tomcat'