Apache Tomcat Default Servlet 경로 동치성(Path Equivalence) 취약점 기반 원격 코드 실행 및 정보 유출 (CVE-2025-24813)
실무자 핵심 요약 (Executive Summary)
SECOPS ASSESSMENTApache Tomcat 11.0.0-M1~11.0.2, 10.1.0-M1~10.1.34, 9.0.0.M1~9.0.98 및 지원 종료된 8.5.0~8.5.100 버전.
Default Servlet의 쓰기 권한이 활성화된 환경에서 공격자가 내부 점(Internal Dot) 경로 동치성 우회를 통해 민감한 파일에 악성 콘텐츠를 주입하거나, 세션 역직렬화 공격을 연계하여 원격 코드 실행(RCE)을 수행할 수 있습니다.
즉시 Apache Tomcat 공식 패치 버전(11.0.3, 10.1.35, 9.0.99 이상)으로 업그레이드하고, Default Servlet의 'readonly' 설정을 true(기본값)로 유지하십시오.
영향받는 제품 및 버전 범위
권장 패치 및 임시 완화(Workaround) 가이드
패치 및 우회 명령어1. 공식 보안 패치 및 버전 업그레이드 명령어
가장 확실한 해결책은 취약점이 해결된 최신 안정 버전으로 업그레이드하는 것입니다. 아래는 데비안/우분투 계열 및 RedHat 계열 시스템에서 Tomcat을 업그레이드하거나 수동 설치하는 예시 명령어입니다.
# 1. 현재 실행 중인 Tomcat 버전 확인
/usr/share/tomcat/bin/version.sh
# 2. 최신 안전 버전 다운로드 및 압축 해제 (Tomcat 10.1.35 예시)
wget https://archive.apache.org/dist/tomcat/tomcat-10/v10.1.35/bin/apache-tomcat-10.1.35.tar.gz
tar -zxvf apache-tomcat-10.1.35.tar.gz -C /opt/
# 3. 심볼릭 링크 업데이트 및 서비스 재시작
ln -sfn /opt/apache-tomcat-10.1.35 /opt/tomcat
systemctl restart tomcat2. 패치 전 임시 완화(Workaround) 및 접근 제어 설정
즉각적인 패치가 어려운 경우, Tomcat의 전역 설정 파일인 web.xml에서 Default Servlet의 쓰기 권한을 비활성화(기본값은 비활성화 상태임)하여 공격 벡터를 차단해야 합니다.
<!-- /opt/tomcat/conf/web.xml 파일 수정 -->
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<!-- readonly 설정을 반드시 true로 지정하여 쓰기 권한(PUT/DELETE)을 차단합니다 -->
<init-param>
<param-name>readonly</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>3. 침해 흔적(IoC) 및 로그·버전 점검 스크립트
Tomcat 액세스 로그에서 비정상적인 PUT 요청이나 세션 저장소 경로를 표적으로 하는 비정상적인 파일 생성 시도를 탐지하는 스크립트입니다.
# Tomcat 액세스 로그에서 PUT 및 DELETE 요청 패턴 분석
grep -Ei '"(PUT|DELETE) .* HTTP/' /var/log/tomcat*/localhost_access_log*.txt
# 세션 저장소 디렉터리 내에 비정상적인 세션 파일(.session)이 생성되었는지 점검
find /var/lib/tomcat*/work/ -name '*.session' -mtime -7 -ls코드 수정 전에도 가상 패치(Virtual Patching)로 웹 공격을 즉시 차단하세요
서버 재시작이나 긴급 패치가 어려운 운영 환경이라면 클라우드 WAF 관리형 룰셋을 활성화하여 SQLi, RCE, XSS 익스플로잇 페이로드를 엣지에서 1분 만에 차단할 수 있습니다.
취약점 발생 원리 및 공격 메커니즘
1. 취약점 개요 및 발생 원인 (Root Cause)
본 취약점(CVE-2025-24813)은 Apache Tomcat의 Default Servlet에서 파일 이름을 처리할 때 발생하는 경로 동치성(Path Equivalence, CWE-706) 검증 미흡으로 인해 발생합니다. 특정 운영체제나 파일 시스템 환경에서 파일 이름 내부에 포함된 점('file.Name' 형태의 Internal Dot)이 경로 해석 과정에서 비정상적으로 처리되어, 애플리케이션이 의도한 디렉터리 경계를 우회할 수 있게 됩니다. 이로 인해 공격자는 쓰기 권한이 활성화된 Default Servlet을 악용하여 임의의 파일 경로에 접근하거나 데이터를 덮어쓸 수 있는 권한을 획득하게 됩니다.
2. 공격 메커니즘 및 익스플로잇 시나리오
공격 시나리오는 크게 두 가지 형태로 나뉩니다.
시나리오 A: 정보 유출 및 파일 변조
- Default Servlet의 쓰기 권한('readonly' 파라미터가 false)이 활성화되어 있고, 부분 업로드(Partial PUT)가 허용된 상태여야 합니다.
- 공격자는 공개 업로드 디렉터리의 하위 경로에 존재하는 민감한 업로드 대상 디렉터리 경로를 파악합니다.
- 경로 동치성 우회 기법과 Partial PUT 요청을 조합하여, 공격자가 타깃으로 삼은 민감한 파일의 이름을 지정하고 악성 콘텐츠를 강제로 주입하거나 덮어씁니다.
시나리오 B: 원격 코드 실행 (RCE)
- Default Servlet의 쓰기 권한이 활성화되어 있고, Partial PUT이 허용된 상태여야 합니다.
- Tomcat 애플리케이션이 기본 저장소 위치를 사용하는 파일 기반 세션 지속성(File-based Session Persistence)을 활성화한 상태여야 합니다.
- 대상 애플리케이션 내에 역직렬화 가젯으로 악용 가능한 취약한 라이브러리(예: 특정 버전의 Commons Collections 등)가 포함되어 있어야 합니다.
- 공격자는 세션 파일 저장 경로에 Partial PUT을 통해 조작된 직렬화 객체(Payload)를 주입한 후, 해당 세션 ID로 요청을 전송하여 역직렬화 공격(CWE-502)을 유발하고 최종적으로 원격 코드를 실행합니다.
3. 비즈니스 및 인프라 파급 영향
본 취약점은 CVSS 9.8의 치명적(Critical) 등급으로 평가되었으며, 실제 공격에 악용될 수 있는 KEV(Known Exploited Vulnerabilities) 목록에 등재되었습니다. 공격자가 이 취약점을 성공적으로 악용할 경우, 웹 서버의 권한으로 임의의 시스템 명령을 실행하여 데이터베이스 자격 증명 탈취, 내부망 침투, 랜섬웨어 유포 등 기업 인프라 전체를 장악할 수 있는 심각한 비즈니스 중단 위험을 초래합니다.
공식 보안 권고문 및 참조 링크
Path Equivalence: 'file.Name' (Internal Dot) leading to Remote Code Execution and/or Information disclosure and/or malicious content added to uploaded files via write enabled Default Servlet in Apache Tomcat. This issue affects Apache Tomcat: from 11.0.0-M1 through 11.0.2, from 10.1.0-M1 through 10.1.34, from 9.0.0.M1 through 9.0.98. 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. If all of the following were true, a malicious user was able to view security sensitive files and/or inject content into those files: - writes enabled for the default servlet (disabled by default) - support for partial PUT (enabled by default) - a target URL for security sensitive uploads that was a sub-directory of a target URL for public uploads - attacker knowledge of the names of security sensitive files being uploaded - the security sensitive files also being uploaded via partial PUT If all of the following were true, a malicious user was able to perform remote code execution: - writes enabled for the default servlet (disabled by default) - support for partial PUT (enabled by default) - application was using Tomcat's file based session persistence with the default storage location - application included a library that may be leveraged in a deserialization attack Users are recommended to upgrade to version 11.0.3, 10.1.35 or 9.0.99, which fixes the issue.
자주 묻는 실무 질문 (FAQ — CVE-2025-24813)
FAQQ1. CVE-2025-24813 취약점의 위험도와 실제 악용 가능성은 어느 정도입니까?
CVE-2025-24813의 기본 점수는 CVSS 9.8 (CRITICAL)이며, 향후 30일 내 실제 악용 확률을 나타내는 EPSS 점수는 99.9%입니다. 현재 미국 CISA KEV(실제 악용이 확인된 취약점 카탈로그)에 등재되어 있으므로 최우선 긴급 패치가 필요합니다.
Q2. CVE-2025-24813에 영향을 받는 벤더와 제품은 무엇입니까?
주요 영향 벤더는 apache이며, 대상 컴포넌트는 tomcat입니다. 상세 영향 범위: Apache Tomcat 11.0.0-M1 ~ 11.0.2 (11.0.3에서 해결) Apache Tomcat 10.1.0-M1 ~ 10.1.34 (10.1.35에서 해결) Apache Tomcat 9.0.0.M1 ~ 9.0.98 (9.0.99에서 해결) Apache Tomcat 8.5.0 ~ 8.5.100 (지원 종료 버전이나 영향 받음)
Q3. 서버 재기동이나 정규 패치 전 즉시 적용할 수 있는 완화 조치(Workaround)는 무엇입니까?
[권장 조치] 즉시 Apache Tomcat 공식 패치 버전(11.0.3, 10.1.35, 9.0.99 이상)으로 업그레이드하고, Default Servlet의 'readonly' 설정을 true(기본값)로 유지하십시오. 본문의 패치 및 우회 명령어 섹션과 자가 점검 체크리스트를 참고하여 외부 노출 포트를 차단하거나 WAF 탐지 규칙을 선적용하십시오.
CVE-2025-24813 사내 보안 패치 공지문 · CISO 경영진 보고서 초안 자동 생성
클릭 한 번으로 사내 이메일·노션·결재 문서에 바로 붙여넣을 수 있는 공식 보고서 양식을 생성합니다.
🔗 함께 점검해야 할 동일 벤더·스택 연관 취약점 (apache)
동일 카테고리 전체 보기 →Apache Tomcat EncryptInterceptor 우회 및 민감 정보 평문 노출 취약점 (CVE-2026-34486)
[영향 대상] Apache Tomcat 11.0.20, 10.1.53, 9.0.116 버전에서 클러스터링(Clustering) 및 EncryptInterceptor를 사용하는 환경
Apache Tomcat EncryptInterceptor 패딩 오라클 취약점 (CVE-2026-29146) 보안 권고
[영향 대상] Apache Tomcat의 클러스터링 멤버십 보호를 위해 기본 설정으로 `EncryptInterceptor`를 사용하는 환경 (11.0.0-M1~11.0.18, 10.0.0-M1~10.1.52, 9.0.13~9.0.115, 8.5.38~8.5.100, 7.0.100~7.0.109)
Apache ActiveMQ Jolokia JMX-HTTP 브릿지 원격 코드 실행(RCE) 취약점 보안 권고 (CVE-2026-34197)
[영향 대상] Apache ActiveMQ Classic 5.19.4 미만 버전 및 6.0.0 이상 6.2.3 미만 버전
Apache MINA 3.0 JavaNativeMessageDecoder 역직렬화 원격 코드 실행(RCE) 취약점 (CVE-2026-118636)
[영향 대상] Apache MINA 3.0.0 비활성 브랜치 및 해당 코덱 모듈을 사용하는 Java 애플리케이션
일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독
보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.