Apache Tomcat 7.0.x Windows Remote Code Execution Vulnerability (CVE-2017-12615) Security Advisory
Executive & SecOps Summary
SECOPS ASSESSMENTApache Tomcat versions 7.0.0 to 7.0.79 running on Windows with the 'readonly' initialization parameter set to 'false'.
Unauthenticated remote attackers can upload malicious JSP files via specially crafted HTTP PUT requests, leading to arbitrary code execution under the context of the Tomcat process.
Immediately upgrade Apache Tomcat to version 7.0.81 or later, or revert the 'readonly' parameter to 'true' in the web.xml configuration.
Affected Products & Version Scope
Remediation & Live Workaround Commands
PATCH & WORKAROUND1. Official Patch & Version Upgrade Commands
The recommended remediation is to upgrade to Apache Tomcat 7.0.81 or later, where the input validation logic has been hardened against Windows file system quirks.
# Stop the running Tomcat service
# For Windows: net stop Tomcat7
# Download and extract the secured Tomcat version (e.g., 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
# Migrate configuration files securely and restart the service2. Temporary Workaround & Hardening Configuration
If an immediate upgrade is not feasible, modify the conf/web.xml file to ensure that the readonly parameter is set to true (or completely remove the parameter to default to true).
<!-- Edit 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>
<!-- Force readonly to true to disable PUT and DELETE methods -->
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>3. Log Audit & IoC Verification Commands
Inspect Tomcat access logs and the web application directories for unauthorized PUT requests and unexpected JSP files.
# Search Tomcat access logs for PUT requests targeting JSP files
grep -i 'PUT' /path/to/tomcat/logs/localhost_access_log.* | grep -E '\.jsp'
# PowerShell command to find recently modified JSP files in the webapps directory
Get-ChildItem -Path 'C: omcat\webapps' -Filter '*.jsp' -Recurse | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-30) }Block Exploits Instantly with Managed Virtual Patching Rules
Can't patch production immediately? Deploy managed WAF rules at the edge to intercept RCE, SQLi, and deserialization payloads before they hit your origin server.
Technical Root Cause & Exploitation Mechanics
1. Vulnerability Overview & Root Cause
This vulnerability exists in the DefaultServlet of Apache Tomcat 7.0.x running on Windows environments. When the 'readonly' initialization parameter is explicitly set to 'false', Tomcat permits HTTP PUT requests to upload files to the server. Due to a discrepancy between Java's file handling APIs and the underlying Windows Win32 file system behavior, attackers can bypass extension validation checks by appending special characters (such as '/' or '::$DATA') to the request URI, allowing arbitrary JSP files to be written to the web root.
2. Exploitation Mechanics & Attack Scenario
The exploitation flow typically proceeds as follows:
- Crafted Request: The attacker sends an HTTP PUT request targeting a JSP path with trailing characters, such as
PUT /shell.jsp/orPUT /shell.jsp::$DATA. - Validation Bypass: Tomcat's internal validation logic treats the URI as a directory or an alternate data stream, bypassing the standard JSP upload restrictions.
- File Creation: When Windows processes the file creation call, the trailing slash or stream identifier is stripped, resulting in a file named
shell.jspbeing written to disk. - Execution: The attacker requests the uploaded JSP file via HTTP GET, triggering remote code execution on the target server.
3. Infrastructure & Business Impact
With a CVSS score of 8.1 and active exploitation status in CISA's KEV catalog (EPSS score: 0.9971), this vulnerability poses an extreme risk. Successful exploitation grants the attacker the ability to execute arbitrary system commands, potentially leading to full host compromise, lateral movement within the internal network, data exfiltration, and deployment of ransomware.
Official Vendor Advisories & References
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.
Frequently Asked SecOps Questions (CVE-2017-12615)
FAQQ1. How critical is CVE-2017-12615 and is it actively exploited in the wild?
CVE-2017-12615 is rated CVSS 8.1 (HIGH) with a 30-day EPSS exploitation probability of 99.7%. It is listed in the CISA Known Exploited Vulnerabilities (KEV) catalog, requiring immediate emergency remediation.
Q2. Which vendors and products are affected by CVE-2017-12615?
Primary impacted vendors include apache across tomcat. Scope summary: Apache Tomcat versions 7.0.0 through 7.0.79 running on Windows with 'readonly' set to 'false'
Q3. What temporary mitigations or workarounds exist for CVE-2017-12615 before patching?
[Mitigation] Immediately upgrade Apache Tomcat to version 7.0.81 or later, or revert the 'readonly' parameter to 'true' in the web.xml configuration. Follow the CLI remediation commands and interactive SecOps checklist on this page to restrict exposure prior to your maintenance window.
Generate an Internal Engineering Notice or CISO Report for CVE-2017-12615
Instantly format this advisory into an executive CISO summary or engineering patch ticket.
🔗 Related Advisories in Similar Stack (apache)
View Category →Apache Tomcat EncryptInterceptor Bypass and Sensitive Data Exposure Vulnerability (CVE-2026-34486)
[Affected Scope] Apache Tomcat versions 11.0.20, 10.1.53, and 9.0.116 utilizing clustering with EncryptInterceptor enabled
Apache Tomcat EncryptInterceptor Padding Oracle Vulnerability (CVE-2026-29146) Security Advisory
[Affected Scope] Apache Tomcat deployments utilizing `EncryptInterceptor` with default configurations for cluster membership protection (11.0.0-M1 to 11.0.18, 10.0.0-M1 to 10.1.52, 9.0.13 to 9.0.115, 8.5.38 to 8.5.100, 7.0.100 to 7.0.109).
Apache ActiveMQ Jolokia JMX-HTTP Bridge Remote Code Execution Vulnerability Advisory (CVE-2026-34197)
[Affected Scope] Apache ActiveMQ Classic versions prior to 5.19.4, and 6.0.0 through 6.2.3
Joomla Page Builder CK Extension Unauthenticated Remote Code Execution (RCE) Vulnerability (CVE-2026-56290)
[Affected Scope] Joomla Page Builder CK extension versions prior to 3.6.0
Subscribe to Daily Vulnerability Briefings & KEV Alerts
Concise morning briefings for SecOps, DevSecOps, and SRE teams covering newly exploited CVEs and mitigation priorities.