CVE-2017-12615: Apache Tomcat on Windows Remote Code Execution Vulnerability

Published Sep 19, 2017
·
Updated

A vulnerability was discovered in Tomcat where if a servlet context was configured with readonly=false and HTTP PUT requests were allowed, an attacker could upload a JSP file to that context and achieve code execution.

Other sources

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.

When running Apache Tomcat on Windows with HTTP PUTs enabled, it is 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.

CISA

Affected Software

155 affected componentsFixes available
redhat/tomcat6<0:6.0.24-111.el6_9
0:6.0.24-111.el6_9
redhat/tomcat<0:7.0.76-3.el7_4
0:7.0.76-3.el7_4
redhat/httpd<0:2.2.26-57.ep6.el6
0:2.2.26-57.ep6.el6
redhat/jbcs-httpd24-openssl<1:1.0.2h-14.jbcs.el6
1:1.0.2h-14.jbcs.el6
redhat/tomcat6<0:6.0.41-19_patch_04.ep6.el6
0:6.0.41-19_patch_04.ep6.el6
redhat/tomcat7<0:7.0.54-28_patch_05.ep6.el6
0:7.0.54-28_patch_05.ep6.el6
redhat/httpd22<0:2.2.26-58.ep6.el7
0:2.2.26-58.ep6.el7
redhat/jbcs-httpd24-openssl<1:1.0.2h-14.jbcs.el7
1:1.0.2h-14.jbcs.el7
redhat/tomcat6<0:6.0.41-19_patch_04.ep6.el7
0:6.0.41-19_patch_04.ep6.el7
redhat/tomcat7<0:7.0.54-28_patch_05.ep6.el7
0:7.0.54-28_patch_05.ep6.el7
redhat/tomcat7<0:7.0.70-25.ep7.el6
0:7.0.70-25.ep7.el6
redhat/tomcat8<0:8.0.36-29.ep7.el6
0:8.0.36-29.ep7.el6
redhat/tomcat-native<0:1.2.8-11.redhat_11.ep7.el6
0:1.2.8-11.redhat_11.ep7.el6
redhat/tomcat-vault<0:1.1.6-1.Final_redhat_1.1.ep7.el6
0:1.1.6-1.Final_redhat_1.1.ep7.el6
redhat/tomcat7<0:7.0.70-25.ep7.el7
0:7.0.70-25.ep7.el7
redhat/tomcat8<0:8.0.36-29.ep7.el7
0:8.0.36-29.ep7.el7
redhat/tomcat-native<0:1.2.8-11.redhat_11.ep7.el7
0:1.2.8-11.redhat_11.ep7.el7
redhat/tomcat-vault<0:1.1.6-1.Final_redhat_1.1.ep7.el7
0:1.1.6-1.Final_redhat_1.1.ep7.el7
redhat/tomcat<7.0.81
7.0.81
maven/org.apache.tomcat.embed:tomcat-embed-core>=7.0.0<7.0.79
7.0.79
Apache Tomcat
Apache Tomcat=7.0
Apache Tomcat=7.0.0
Apache Tomcat=7.0.0-beta
Apache Tomcat=7.0.1
Apache Tomcat=7.0.2
Apache Tomcat=7.0.2-beta
Apache Tomcat=7.0.3
Apache Tomcat=7.0.4
Apache Tomcat=7.0.4-beta
Apache Tomcat=7.0.5
Apache Tomcat=7.0.5-beta
Apache Tomcat=7.0.6
Apache Tomcat=7.0.7
Apache Tomcat=7.0.8
Apache Tomcat=7.0.9
Apache Tomcat=7.0.10
Apache Tomcat=7.0.11
Apache Tomcat=7.0.12
Apache Tomcat=7.0.13
Apache Tomcat=7.0.14
Apache Tomcat=7.0.15
Apache Tomcat=7.0.16
Apache Tomcat=7.0.17
Apache Tomcat=7.0.18
Apache Tomcat=7.0.19
Apache Tomcat=7.0.20
Apache Tomcat=7.0.21
Apache Tomcat=7.0.22
Apache Tomcat=7.0.23
Apache Tomcat=7.0.24
Apache Tomcat=7.0.25
Apache Tomcat=7.0.26
Apache Tomcat=7.0.27
Apache Tomcat=7.0.28
Apache Tomcat=7.0.29
Apache Tomcat=7.0.30
Apache Tomcat=7.0.31
Apache Tomcat=7.0.32
Apache Tomcat=7.0.33
Apache Tomcat=7.0.34
Apache Tomcat=7.0.35
Apache Tomcat=7.0.36
Apache Tomcat=7.0.37
Apache Tomcat=7.0.38
Apache Tomcat=7.0.39
Apache Tomcat=7.0.40
Apache Tomcat=7.0.41
Apache Tomcat=7.0.42
Apache Tomcat=7.0.43
Apache Tomcat=7.0.44
Apache Tomcat=7.0.45
Apache Tomcat=7.0.46
Apache Tomcat=7.0.47
Apache Tomcat=7.0.48
Apache Tomcat=7.0.49
Apache Tomcat=7.0.50
Apache Tomcat=7.0.51
Apache Tomcat=7.0.54
Apache Tomcat=7.0.55
Apache Tomcat=7.0.56
Apache Tomcat=7.0.57
Apache Tomcat=7.0.58
Apache Tomcat=7.0.59
Apache Tomcat=7.0.60
Apache Tomcat=7.0.61
Apache Tomcat=7.0.62
Apache Tomcat=7.0.63
Apache Tomcat=7.0.64
Apache Tomcat=7.0.65
Apache Tomcat=7.0.66
Apache Tomcat=7.0.67
Apache Tomcat=7.0.68
Apache Tomcat=7.0.69
Apache Tomcat=7.0.70
Apache Tomcat=7.0.71
Apache Tomcat=7.0.72
Apache Tomcat=7.0.73
Apache Tomcat=7.0.74
Apache Tomcat=7.0.75
Apache Tomcat=7.0.76
Apache Tomcat=7.0.77
Apache Tomcat=7.0.79
Microsoft Windows
All of the following
Apache Tomcat>=7.0.0<=7.0.79
Microsoft Windows
NetApp 7-Mode Transition Tool
NetApp OnCommand Balance
NetApp Oncommand Shift
redhat Enterprise Linux Server Update Services For Sap Solutions=7.4
redhat Enterprise Linux Server Update Services For Sap Solutions=7.6
redhat Enterprise Linux Server Update Services For Sap Solutions=7.7
redhat Jboss Enterprise Web Server=2.0.0
redhat Jboss Enterprise Web Server=3.0.0
redhat Jboss Enterprise Web Server Text-only Advisories
redhat Enterprise Linux Desktop=6.0
redhat Enterprise Linux Desktop=7.0
redhat Enterprise Linux Eus=7.4
redhat Enterprise Linux Eus=7.5
redhat Enterprise Linux Eus=7.6
redhat Enterprise Linux Eus=7.7
redhat Enterprise Linux Eus Compute Node=7.4
redhat Enterprise Linux Eus Compute Node=7.5
redhat Enterprise Linux Eus Compute Node=7.6
redhat Enterprise Linux Eus Compute Node=7.7
redhat Enterprise Linux For Ibm Z Systems=7.0_s390x
redhat Enterprise Linux For Ibm Z Systems Eus=7.4_s390x
redhat Enterprise Linux For Ibm Z Systems Eus=7.5_s390x
redhat Enterprise Linux For Ibm Z Systems Eus=7.6_s390x
redhat Enterprise Linux For Ibm Z Systems Eus=7.7_s390x
redhat Enterprise Linux For Power Big Endian=7.0_ppc64
redhat Enterprise Linux For Power Big Endian Eus=7.4_ppc64
redhat Enterprise Linux For Power Big Endian Eus=7.5_ppc64
redhat Enterprise Linux For Power Big Endian Eus=7.6_ppc64
redhat Enterprise Linux For Power Big Endian Eus=7.7_ppc64
redhat Enterprise Linux For Power Little Endian=7.0_ppc64le
redhat Enterprise Linux For Power Little Endian Eus=7.4_ppc64le
redhat Enterprise Linux For Power Little Endian Eus=7.5_ppc64le
redhat Enterprise Linux For Power Little Endian Eus=7.6_ppc64le
redhat Enterprise Linux For Power Little Endian Eus=7.7_ppc64le
redhat Enterprise Linux For Scientific Computing=7.0
redhat Enterprise Linux Server=6.0
redhat Enterprise Linux Server=7.0
redhat Enterprise Linux Server Aus=7.4
redhat Enterprise Linux Server Aus=7.6
redhat Enterprise Linux Server Aus=7.7
redhat Enterprise Linux Server For Power Little Endian Update Services For Sap Solutions=7.4_ppc64le
redhat Enterprise Linux Server For Power Little Endian Update Services For Sap Solutions=7.6_ppc64le
redhat Enterprise Linux Server For Power Little Endian Update Services For Sap Solutions=7.7_ppc64le
redhat Enterprise Linux Server For Power Little Endian Update Services For Sap Solutions=9.2_ppc64le
redhat Enterprise Linux Server Tus=7.4
redhat Enterprise Linux Server Tus=7.6
redhat Enterprise Linux Server Tus=7.7
redhat Enterprise Linux Workstation=6.0
redhat Enterprise Linux Workstation=7.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade redhat/tomcat6 to a version that resolves this vulnerability.

    Fixed in 0:6.0.24-111.el6_9
  2. Upgrade

    Upgrade redhat/tomcat to a version that resolves this vulnerability.

    Fixed in 0:7.0.76-3.el7_4
  3. Upgrade

    Upgrade redhat/httpd to a version that resolves this vulnerability.

    Fixed in 0:2.2.26-57.ep6.el6
  4. Upgrade

    Upgrade redhat/jbcs-httpd24-openssl to a version that resolves this vulnerability.

    Fixed in 1:1.0.2h-14.jbcs.el6
  5. Upgrade

    Upgrade redhat/tomcat6 to a version that resolves this vulnerability.

    Fixed in 0:6.0.41-19_patch_04.ep6.el6
  6. Upgrade

    Upgrade redhat/tomcat7 to a version that resolves this vulnerability.

    Fixed in 0:7.0.54-28_patch_05.ep6.el6
  7. Upgrade

    Upgrade redhat/httpd22 to a version that resolves this vulnerability.

    Fixed in 0:2.2.26-58.ep6.el7
  8. Upgrade

    Upgrade redhat/jbcs-httpd24-openssl to a version that resolves this vulnerability.

    Fixed in 1:1.0.2h-14.jbcs.el7
  9. Upgrade

    Upgrade redhat/tomcat6 to a version that resolves this vulnerability.

    Fixed in 0:6.0.41-19_patch_04.ep6.el7
  10. Upgrade

    Upgrade redhat/tomcat7 to a version that resolves this vulnerability.

    Fixed in 0:7.0.54-28_patch_05.ep6.el7
  11. Upgrade

    Upgrade redhat/tomcat7 to a version that resolves this vulnerability.

    Fixed in 0:7.0.70-25.ep7.el6
  12. Upgrade

    Upgrade redhat/tomcat8 to a version that resolves this vulnerability.

    Fixed in 0:8.0.36-29.ep7.el6
  13. Upgrade

    Upgrade redhat/tomcat-native to a version that resolves this vulnerability.

    Fixed in 0:1.2.8-11.redhat_11.ep7.el6
  14. Upgrade

    Upgrade redhat/tomcat-vault to a version that resolves this vulnerability.

    Fixed in 0:1.1.6-1.Final_redhat_1.1.ep7.el6
  15. Upgrade

    Upgrade redhat/tomcat7 to a version that resolves this vulnerability.

    Fixed in 0:7.0.70-25.ep7.el7
  16. Upgrade

    Upgrade redhat/tomcat8 to a version that resolves this vulnerability.

    Fixed in 0:8.0.36-29.ep7.el7
  17. Upgrade

    Upgrade redhat/tomcat-native to a version that resolves this vulnerability.

    Fixed in 0:1.2.8-11.redhat_11.ep7.el7
  18. Upgrade

    Upgrade redhat/tomcat-vault to a version that resolves this vulnerability.

    Fixed in 0:1.1.6-1.Final_redhat_1.1.ep7.el7
  19. Upgrade

    Upgrade redhat/tomcat to a version that resolves this vulnerability.

    Fixed in 7.0.81
  20. Upgrade

    Upgrade maven/org.apache.tomcat.embed:tomcat-embed-core to a version that resolves this vulnerability.

    Fixed in 7.0.79
  21. Configuration

    Set the servlet context (including the DefaultServlet, WebDAV servlet, or the application context) initialization parameter readonly to true (default) to prevent uploading a JSP via PUT when writable contexts are configured.

    Apache Tomcat (servlet context / DefaultServlet / WebDAV servlet / application context) readonly = true
  22. Configuration

    Block HTTP methods that permit resource modification (specifically block/disable HTTP PUT requests) for untrusted users to prevent JSP upload and subsequent code execution.

    Apache Tomcat (HTTP connector / request handling) HTTP PUT requests = blocked

Event History

Sep 19, 2017
CVE Published
12:00 AM
CVE Published
via MITRE·01:00 PM
Data Sourced
via MITRE·01:00 PM
DescriptionWeakness
Data Sourced
via NVD·01:29 PM
RemedyDescriptionSeverityWeaknessAffected Software
Data Sourced
via Red Hat·04:04 PM
DescriptionSeverityAffected Software
Oct 17, 2018
Advisory Published
via GitHub·04:30 PM
Mar 25, 2022
Known Exploited
via CISA·12:00 AM
Known Ransomware
via CISA·12:00 AM

Parent advisories

This vulnerability appears in the following advisories.

Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2017-12615?

CVE-2017-12615 has been assigned a medium severity rating due to the potential for unauthorized code execution through malicious file uploads.

2

How do I fix CVE-2017-12615?

To fix CVE-2017-12615, upgrade Apache Tomcat to version 7.0.81 or later.

3

What versions of Tomcat are affected by CVE-2017-12615?

Versions of Apache Tomcat from 7.0.0 to 7.0.79 are affected by CVE-2017-12615.

4

Is this vulnerability specific to certain operating systems?

CVE-2017-12615 specifically affects Apache Tomcat running on Windows systems.

5

Can CVE-2017-12615 be exploited remotely?

Yes, CVE-2017-12615 can be exploited remotely if the server allows HTTP PUT requests to a servlet context configured with readonly=false.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203