Apache Tomcat 7.0.x Windows 환경 원격 코드 실행 취약점 (CVE-2017-12615) 보안 권고
실무자 핵심 요약 (Executive Summary)
SECOPS ASSESSMENTWindows 운영체제에서 실행되며 readonly 초기화 매개변수가 false로 설정되어 HTTP PUT 메소드가 활성화된 Apache Tomcat 7.0.0 ~ 7.0.79 버전.
인증되지 않은 공격자가 특수하게 조작된 HTTP PUT 요청을 통해 임의의 JSP 파일을 서버에 업로드하고, 이를 실행하여 시스템 권한으로 원격 코드 실행(RCE)을 수행할 수 있습니다.
Apache Tomcat 버전을 7.0.81 이상으로 즉시 업로드하거나, web.xml 설정에서 DefaultServlet의 readonly 매개변수를 true(기본값)로 변경하십시오.
영향받는 제품 및 버전 범위
권장 패치 및 임시 완화(Workaround) 가이드
패치 및 우회 명령어1. 공식 보안 패치 및 버전 업그레이드 명령어
가장 안전한 해결책은 취약점이 해결된 Apache Tomcat 7.0.81 이상 버전 또는 최신 9.x/10.x 버전으로 업그레이드하는 것입니다. 아래는 리눅스/윈도우 환경에서 Tomcat을 안전하게 업데이트하는 예시 가이드입니다.
# 기존 Tomcat 서비스 중지 (Windows의 경우 서비스 관리자에서 중지)
# net stop Tomcat7
# 최신 안전한 Tomcat 버전 다운로드 및 압축 해제 (예: 7.0.109)
curl -O https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.109/bin/apache-tomcat-7.0.109.tar.gz
tar -xvf apache-tomcat-7.0.109.tar.gz
# 기존 설정 파일(server.xml 등)을 백업 후 새 버전에 안전하게 이관하여 구동2. 패치 전 임시 완화(Workaround) 및 접근 제어 설정
즉각적인 업그레이드가 어려운 경우, Tomcat의 conf/web.xml 파일을 수정하여 HTTP PUT 요청을 원천 차단해야 합니다. readonly 값을 true로 설정하거나 해당 설정을 완전히 제거하십시오 (기본값은 true입니다).
<!-- conf/web.xml 설정 수정 -->
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>readonly</param-name>
<!-- 반드시 true로 설정하여 PUT/DELETE 메소드를 비활성화합니다 -->
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>3. 침해 흔적(IoC) 및 로그·버전 점검 스크립트
Tomcat 액세스 로그를 분석하여 비정상적인 PUT 요청 및 JSP 파일 생성 시도가 있었는지 점검하십시오.
# Tomcat access_log에서 PUT 메소드를 사용한 JSP 호출 흔적 검색
grep -i 'PUT' /path/to/tomcat/logs/localhost_access_log.* | grep -E '\.jsp'
# 웹 루트 디렉터리 내 최근 생성되거나 수정된 의심스러운 JSP 파일 검색 (PowerShell)
Get-ChildItem -Path 'C: omcat\webapps' -Filter '*.jsp' -Recurse | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-30) }코드 수정 전에도 가상 패치(Virtual Patching)로 웹 공격을 즉시 차단하세요
서버 재시작이나 긴급 패치가 어려운 운영 환경이라면 클라우드 WAF 관리형 룰셋을 활성화하여 SQLi, RCE, XSS 익스플로잇 페이로드를 엣지에서 1분 만에 차단할 수 있습니다.
취약점 발생 원리 및 공격 메커니즘
1. 취약점 개요 및 발생 원인 (Root Cause)
본 취약점은 Windows 환경에서 실행되는 Apache Tomcat 7.0.x 버전의 DefaultServlet 설정 오류로 인해 발생합니다. Tomcat의 기본 서블릿(DefaultServlet) 설정 중 'readonly' 매개변수가 'false'로 설정되면 서버는 HTTP PUT 요청을 허용하여 파일 업로드를 처리하게 됩니다. Windows OS의 파일 시스템 특성과 Java의 파일 처리 API 간의 불일치로 인해, 공격자는 파일 경로 끝에 '/' 또는 '::$DATA'와 같은 특수 문자를 추가하여 Tomcat의 보안 필터링 및 확장자 검증 로직을 우회하고 임의의 JSP 파일을 서버에 생성할 수 있습니다.
2. 공격 메커니즘 및 익스플로잇 시나리오
공격자는 대상 서버가 HTTP PUT 메소드를 허용하는지 확인한 후, 다음과 같은 방식으로 익스플로잇을 시도합니다:
- 우회 요청 전송: 공격자는 'PUT /shell.jsp/' 또는 'PUT /shell.jsp::$DATA'와 같은 요청을 전송합니다.
- 파일 시스템 저장: Tomcat 내부의 파일 검증 로직은 이를 일반 파일이 아닌 디렉터리나 대체 데이터 스트림으로 오인하여 필터를 통과시키지만, Windows Win32 API 수준에서 파일이 생성될 때는 끝의 '/'나 '::$DATA'가 제거되어 최종적으로 'shell.jsp'라는 파일이 웹 루트 디렉터리에 저장됩니다.
- 원격 코드 실행: 업로드된 JSP 파일에 직접 접근('GET /shell.jsp')하여 내부에 삽입된 악성 자바 코드를 실행하고 시스템 제어권을 획득합니다.
3. 비즈니스 및 인프라 파급 영향
본 취약점은 CISA KEV(Known Exploited Vulnerabilities) 목록에 등재되어 있으며, EPSS 점수가 0.9971에 달할 정도로 실제 공격에 매우 빈번하게 악용되는 고위험 취약점입니다. 공격자가 웹 서버의 권한(종종 SYSTEM 또는 관리자 권한)을 획득할 경우, 내부 네트워크 침투, 데이터베이스 기밀 정보 탈취, 랜섬웨어 유포 및 웹페이지 변조 등 비즈니스 연속성에 치명적인 피해를 초래할 수 있습니다.
공식 보안 권고문 및 참조 링크
When running Apache Tomcat 7.0.0 to 7.0.79 on Windows with HTTP PUTs enabled (e.g. via setting the readonly initialisation parameter of the Default to false) it was possible to upload a JSP file to the server via a specially crafted request. This JSP could then be requested and any code it contained would be executed by the server.
자주 묻는 실무 질문 (FAQ — CVE-2017-12615)
FAQQ1. CVE-2017-12615 취약점의 위험도와 실제 악용 가능성은 어느 정도입니까?
CVE-2017-12615의 기본 점수는 CVSS 8.1 (HIGH)이며, 향후 30일 내 실제 악용 확률을 나타내는 EPSS 점수는 99.7%입니다. 현재 미국 CISA KEV(실제 악용이 확인된 취약점 카탈로그)에 등재되어 있으므로 최우선 긴급 패치가 필요합니다.
Q2. CVE-2017-12615에 영향을 받는 벤더와 제품은 무엇입니까?
주요 영향 벤더는 apache이며, 대상 컴포넌트는 tomcat입니다. 상세 영향 범위: Windows OS에서 구동되는 Apache Tomcat 7.0.0 이상 7.0.79 이하 버전 (readonly 매개변수가 false로 설정된 경우에 한함)
Q3. 서버 재기동이나 정규 패치 전 즉시 적용할 수 있는 완화 조치(Workaround)는 무엇입니까?
[권장 조치] Apache Tomcat 버전을 7.0.81 이상으로 즉시 업로드하거나, web.xml 설정에서 DefaultServlet의 readonly 매개변수를 true(기본값)로 변경하십시오. 본문의 패치 및 우회 명령어 섹션과 자가 점검 체크리스트를 참고하여 외부 노출 포트를 차단하거나 WAF 탐지 규칙을 선적용하십시오.
CVE-2017-12615 사내 보안 패치 공지문 · 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 미만 버전
Joomla Page Builder CK 확장 프로그램 미인증 원격 코드 실행(RCE) 취약점 (CVE-2026-56290)
[영향 대상] Joomla용 Page Builder CK 확장 프로그램 3.6.0 미만 버전
일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독
보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.