Actively exploited · Published Feb 24, 2020 · Assigned by apache
CVE-2020-1938
Critical 9.8 Exploited
In plain English
A critical-severity security flaw in Apache Tomcat from Apache. Attackers are actively exploiting it in the wild (listed by CISA on March 3, 2022). The chance it is exploited in the next 30 days is estimated at 99.3% (higher than 99.9% of all known vulnerabilities). Ready-made attack tooling exists: Metasploit, Nuclei, public proof-of-concept code. Fixed versions are available - upgrade the affected package.
CISA guidance
Apply updates per vendor instructions.
Federal agencies must remediate by Mar 17, 2022.
Official description
When using the Apache JServ Protocol (AJP), care must be taken when trusting incoming connections to Apache Tomcat. Tomcat treats AJP connections as having higher trust than, for example, a similar HTTP connection. If such connections are available to an attacker, they can be exploited in ways that may be surprising. In Apache Tomcat 9.0.0.M1 to 9.0.0.30, 8.5.0 to 8.5.50 and 7.0.0 to 7.0.99, Tomcat shipped with an AJP Connector enabled by default that listened on all configured IP addresses. It was expected (and recommended in the security guide) that this Connector would be disabled if not required. This vulnerability report identified a mechanism that allowed: - returning arbitrary files from anywhere in the web application - processing any file in the web application as a JSP Further, if the web application allowed file upload and stored those files within the web application (or the attacker was able to control the content of the web application by some other means) then this, along with the ability to process a file as a JSP, made remote code execution possible. It is important to note that mitigation is only required if an AJP port is accessible to untrusted users. Users wishing to take a defence-in-depth approach and block the vector that permits returning arbitrary files and execution as JSP may upgrade to Apache Tomcat 9.0.31, 8.5.51 or 7.0.100 or later. A number of changes were made to the default AJP Connector configuration in 9.0.31 to harden the default configuration. It is likely that users upgrading to 9.0.31, 8.5.51 or 7.0.100 or later will need to make small changes to their configurations.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian:12 | tomcat9 | 9.0.31-1 | DEBIAN-CVE-2020-1938 |
| Debian:13 | tomcat9 | 9.0.31-1 | DEBIAN-CVE-2020-1938 |
| Debian:14 | tomcat9 | 9.0.31-1 | DEBIAN-CVE-2020-1938 |
| Maven | org.apache.tomcat.embed:tomcat-embed-core | 8.5.51 | GHSA-c9hw-wf7x-jp9j |
| Maven | org.apache.tomcat.embed:tomcat-embed-core | 9.0.31 | GHSA-c9hw-wf7x-jp9j |
| Maven | org.apache.tomcat.embed:tomcat-embed-core | 7.0.100 | GHSA-c9hw-wf7x-jp9j |
| Rocky Linux:8 | apache-commons-collections | 0:3.2.2-10.module+el8.3.0+74+855e3f5d | RLSA-2020:4847 |
| Rocky Linux:8 | apache-commons-collections | 0:3.2.2-10.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | apache-commons-lang | 0:2.6-21.module+el8.3.0+74+855e3f5d | RLSA-2020:4847 |
| Rocky Linux:8 | apache-commons-lang | 0:2.6-21.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | apache-commons-net | 0:3.6-3.module+el8.3.0+74+855e3f5d | RLSA-2020:4847 |
| Rocky Linux:8 | apache-commons-net | 0:3.6-3.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | bea-stax | 0:1.2.0-16.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | glassfish-fastinfoset | 0:1.2.13-9.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | glassfish-jaxb | 0:2.2.11-11.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | glassfish-jaxb-api | 0:2.2.12-8.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | jackson-annotations | 0:2.10.0-1.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | jackson-core | 0:2.10.0-1.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | jackson-databind | 0:2.10.0-1.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | jackson-jaxrs-providers | 0:2.9.9-1.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | jackson-module-jaxb-annotations | 0:2.7.6-4.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | jakarta-commons-httpclient | 1:3.1-28.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | jakarta-commons-httpclient | 1:3.1-28.module+el8.3.0+74+855e3f5d | RLSA-2020:4847 |
| Rocky Linux:8 | javassist | 0:3.18.1-8.module+el8.3.0+74+855e3f5d | RLSA-2020:4847 |
| Rocky Linux:8 | javassist | 0:3.18.1-8.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | ldapjdk | 0:4.22.0-1.module+el8.4.0+418+b7ae1d4a | RLSA-2020:4847 |
| Rocky Linux:8 | pki-servlet-engine | 1:9.0.30-1.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | python-nss | 0:1.0.1-10.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | relaxngDatatype | 0:2011.1-7.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | resteasy | 0:3.0.26-3.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | slf4j | 0:1.7.25-4.module+el8.3.0+133+b8b54b58 | RLSA-2020:4847 |
| Rocky Linux:8 | slf4j | 0:1.7.25-4.module+el8.3.0+74+855e3f5d | RLSA-2020:4847 |
| Rocky Linux:8 | slf4j | 0:1.7.25-4.module+el8.5.0+697+f586bb30 | RLSA-2020:4847 |
| Rocky Linux:8 | stax-ex | 0:1.7.7-8.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | velocity | 0:1.7-24.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | velocity | 0:1.7-24.module+el8.3.0+74+855e3f5d | RLSA-2020:4847 |
| Rocky Linux:8 | xalan-j2 | 0:2.7.1-38.module+el8.3.0+74+855e3f5d | RLSA-2020:4847 |
| Rocky Linux:8 | xalan-j2 | 0:2.7.1-38.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | xerces-j2 | 0:2.11.0-34.module+el8.3.0+74+855e3f5d | RLSA-2020:4847 |
| Rocky Linux:8 | xerces-j2 | 0:2.11.0-34.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | xml-commons-apis | 0:1.4.01-25.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | xml-commons-apis | 0:1.4.01-25.module+el8.3.0+74+855e3f5d | RLSA-2020:4847 |
| Rocky Linux:8 | xml-commons-apis | 0:1.4.01-25.module+el8.5.0+697+f586bb30 | RLSA-2020:4847 |
| Rocky Linux:8 | xml-commons-resolver | 0:1.2-26.module+el8.3.0+74+855e3f5d | RLSA-2020:4847 |
| Rocky Linux:8 | xml-commons-resolver | 0:1.2-26.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | xmlstreambuffer | 0:1.5.4-8.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
| Rocky Linux:8 | xsom | 0:0-19.20110809svn.module+el8.3.0+53+ea062990 | RLSA-2020:4847 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| Apache | Apache Tomcat | Apache Tomcat 9.0.0.M1 to 9.0.0.308.5.0 to 8.5.507.0.0 to 7.0.99 |
References
- [tomcat-announce] 20200224 [SECURITY] CVE-2020-1938 AJP Request Injection and potential Remote Code Execution mailing-list, x_refsource_MLIST
- [ofbiz-notifications] 20200225 [jira] [Commented] (OFBIZ-11407) Upgrade Tomcat from 9.0.29 to 9.0.31 (CVE-2020-1938) mailing-list, x_refsource_MLIST
- [ofbiz-notifications] 20200225 [jira] [Updated] (OFBIZ-11407) Upgrade Tomcat from 9.0.29 to 9.0.31 (CVE-2020-1938) mailing-list, x_refsource_MLIST
- [ofbiz-commits] 20200227 [ofbiz-plugins] branch release17.12 updated: Upgrade Tomcat from 9.0.29 to 9.0.31 (CVE-2020-1938) (OFBIZ-11407) mailing-list, x_refsource_MLIST
- [ofbiz-notifications] 20200227 [jira] [Commented] (OFBIZ-11407) Upgrade Tomcat from 9.0.29 to 9.0.31 (CVE-2020-1938) mailing-list, x_refsource_MLIST
- [ofbiz-notifications] 20200228 [jira] [Commented] (OFBIZ-11407) Upgrade Tomcat from 9.0.29 to 9.0.31 (CVE-2020-1938) mailing-list, x_refsource_MLIST
- [ofbiz-notifications] 20200228 [jira] [Comment Edited] (OFBIZ-11407) Upgrade Tomcat from 9.0.29 to 9.0.31 (CVE-2020-1938) mailing-list, x_refsource_MLIST
- [tomcat-users] 20200301 Re: [SECURITY] CVE-2020-1938 AJP Request Injection and potential Remote Code Execution mailing-list, x_refsource_MLIST
- [tomcat-users] 20200302 Re: AW: [SECURITY] CVE-2020-1938 AJP Request Injection and potentialRemote Code Execution mailing-list, x_refsource_MLIST
- [tomcat-users] 20200302 AW: [SECURITY] CVE-2020-1938 AJP Request Injection and potentialRemote Code Execution mailing-list, x_refsource_MLIST
- [tomcat-users] 20200302 Re: [SECURITY] CVE-2020-1938 AJP Request Injection and potential Remote Code Execution mailing-list, x_refsource_MLIST
- [tomcat-users] 20200304 Re: Fix for CVE-2020-1938 mailing-list, x_refsource_MLIST
- [tomcat-dev] 20200304 Re: Tagging 10.0.x, 9.0.x, 8.5.x mailing-list, x_refsource_MLIST
- [debian-lts-announce] 20200304 [SECURITY] [DLA 2133-1] tomcat7 security update mailing-list, x_refsource_MLIST
- [tomcat-users] 20200305 Aw: Re: Fix for CVE-2020-1938 mailing-list, x_refsource_MLIST
- [tomcat-users] 20200305 Re: Aw: Re: Fix for CVE-2020-1938 mailing-list, x_refsource_MLIST
- [tomcat-dev] 20200309 [Bug 64206] Answer file not being used mailing-list, x_refsource_MLIST
- [tomcat-users] 20200309 Re: Apache Tomcat AJP File Inclusion Vulnerability (unauthenticated check) mailing-list, x_refsource_MLIST
- [tomcat-users] 20200310 Aw: Re: Re: Fix for CVE-2020-1938 mailing-list, x_refsource_MLIST
- [tomcat-users] 20200310 Re: Re: Re: Fix for CVE-2020-1938 mailing-list, x_refsource_MLIST
- [tomee-dev] 20200311 CVE-2020-1938 on Tomcat 9.0.30 / TomEE 8.0.1 mailing-list, x_refsource_MLIST
- [tomee-dev] 20200311 Re: CVE-2020-1938 on Tomcat 9.0.30 / TomEE 8.0.1 mailing-list, x_refsource_MLIST
- openSUSE-SU-2020:0345 vendor-advisory, x_refsource_SUSE
- [tomee-dev] 20200316 RE: CVE-2020-8840 on TomEE 8.0.1 mailing-list, x_refsource_MLIST
- [httpd-bugs] 20200319 [Bug 53098] mod_proxy_ajp: patch to set worker secret passed to tomcat mailing-list, x_refsource_MLIST
- GLSA-202003-43 vendor-advisory, x_refsource_GENTOO
- [tomee-commits] 20200320 [jira] [Updated] (TOMEE-2789) TomEE plus(7.0.7) is affected by CVE-2020-1938(BDSA-2020-0339) vulnerability. mailing-list, x_refsource_MLIST
- [tomee-commits] 20200320 [jira] [Created] (TOMEE-2789) TomEE plus is affected by CVE-2020-1938(BDSA-2020-0339) vulnerability. mailing-list, x_refsource_MLIST
- [tomee-commits] 20200323 [jira] [Commented] (TOMEE-2789) TomEE plus(7.0.7) is affected by CVE-2020-1938(BDSA-2020-0339) vulnerability. mailing-list, x_refsource_MLIST
- FEDORA-2020-0e42878ba7 vendor-advisory, x_refsource_FEDORA
- FEDORA-2020-c870aa8378 vendor-advisory, x_refsource_FEDORA
- FEDORA-2020-04ac174fa9 vendor-advisory, x_refsource_FEDORA
- [tomcat-users] 20200413 RE: Alternatives for AJP mailing-list, x_refsource_MLIST
- openSUSE-SU-2020:0597 vendor-advisory, x_refsource_SUSE
- DSA-4673 vendor-advisory, x_refsource_DEBIAN
- DSA-4680 vendor-advisory, x_refsource_DEBIAN
- [debian-lts-announce] 20200528 [SECURITY] [DLA 2209-1] tomcat8 security update mailing-list, x_refsource_MLIST
- [tomcat-dev] 20200625 svn commit: r1879208 - in /tomcat/site/trunk: docs/security-10.html docs/security-8.html docs/security-9.html xdocs/security-10.xml xdocs/security-8.xml xdocs/security-9.xml mailing-list, x_refsource_MLIST
- [ofbiz-notifications] 20200628 [jira] [Updated] (OFBIZ-11847) CLONE - Upgrade Tomcat from 9.0.34 to 9.0.36 (CVE-2020-11996) mailing-list, x_refsource_MLIST
- [ofbiz-notifications] 20200628 [jira] [Created] (OFBIZ-11847) CLONE - Upgrade Tomcat from 9.0.34 to 9.0.36 (CVE-2020-11996) mailing-list, x_refsource_MLIST