Patchfirst
CVE-2020-1938 KEVPublic exploit Critical · 9.8 EPSS 99.3%

Apache Tomcat Improper Privilege Management Vulnerability

Apache · Tomcat

Summary

Apache Tomcat's AJP Connector, which versions 9.0.0.M1 to 9.0.0.30, 8.5.0 to 8.5.50 and 7.0.0 to 7.0.99 shipped with enabled by default and bound to all configured IP addresses, trusts AJP connections more than equivalent HTTP connections and allows returning arbitrary files from the web application and processing any file as a JSP. An attacker with network access to an exposed AJP port needs no authentication or user interaction, and where the application allows file upload or the attacker can otherwise control web application content, this can lead to remote code execution.

Official description · NVD

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.

Breakdown
69.8 / 100
Exploited
Yes, in CISA KEV
Reports
0
Tactics
3/15

How an attack unfolds

Based on mappings. Select a step to see the evidence.
  1. How attackers get in

  2. What they do

First seen exploited 51 days after disclosure. Public exploit code (Exploit-DB) was available 4 days before disclosure.

  1. Public exploit codeExploit-DB4 days before
  2. Disclosedday 0
  3. First seen exploitedVulnCheck KEV evidence+51 days
  4. Added to CISA KEVEU database agrees+2 yrs

CISA KEV listing is when exploitation was confirmed, not necessarily the first attack.

8 fixes in tomcat-embed-core over 6 years. The latest fix listed for tomcat-embed-core is 10.0.0-M10.

Fixes in tomcat-embed-coreMaven package, by fixed version. Earlier and later fixes in the same package, not necessarily the same bug.

  1. 9.0.29CVE-2019-1241823 Dec 2019
  2. 9.0.30CVE-2019-1756323 Dec 2019
  3. 9.0.31CVE-2019-1756924 Feb 2020
  4. 9.0.31CVE-2020-193524 Feb 2020
  5. 9.0.31CVE-2020-193824 Feb 2020KEV
  6. 9.0.44CVE-2024-2173319 Jan 2024
  7. 9.0.107CVE-2025-5243410 Jul 2025
  8. 10.0.0-M10CVE-2021-2412214 Jan 2021Latest listed

techniques

3 , grouped by in kill-chain order, 3 cited passages 3

Initial AccessTA0001

Exploit Public-Facing Application T1190 Medium
AI mapping from the description · how it is exploited

network-exposed AJP port enables remote exploitation

Tomcat shipped with an AJP Connector enabled by default that listened on all configured IP addresses
From the official description (NVD) Original (opens in a new tab) ↗

ExecutionTA0002

Command and Scripting Interpreter T1059 Medium
AI mapping from the description · primary impact

JSP processing yields code execution

processing any file in the web application as a JSP
From the official description (NVD) Original (opens in a new tab) ↗

CollectionTA0009

Data from Local System T1005 Medium
AI mapping from the description · primary impact

arbitrary file read from web application

returning arbitrary files from anywhere in the web application
From the official description (NVD) Original (opens in a new tab) ↗

Detection

0 rules for this CVE · 258 general rules for its techniques

Rules for this CVE

0 that reference CVE-2020-1938 directly.

CVE-specific rules are not available in this build. Search SigmaHQ ↗

General rules for this CVE’s techniques

These detect the technique in general, not this specific vulnerability.

Sigma rules © SigmaHQ, Detection Rule License 1.1; linked, not reproduced.

Am I affected? What do I upgrade to?

From GitHub Security Advisories and OSV

1 package in 1 ecosystem. Main package: org.apache.tomcat.embed:tomcat-embed-core.

Mavenorg.apache.tomcat.embed:tomcat-embed-coreGHSA-c9hw-wf7x-jp9j

Upgrade to 9.0.109 or later

Fixes this CVE and 12 other known vulnerabilities in this package (CVE-2017-12617, CVE-2018-11784, +10).

Set the version to 9.0.109 or later in your pom.xml or build.gradle.

First fixed in 9.0.31 for CVE-2020-1938.

Affected versions, by release line

If you runUpgrade to
9.0.0 up to 9.0.319.0.109first fix for this CVE: 9.0.31
8.0.0 up to 8.5.51

Still affected on this line by CVE-2025-24813 (no fix published); CVE-2025-31650 (no fix published); CVE-2025-55752 (no fix published).

8.5.94first fix for this CVE: 8.5.51
7.0.0 up to 7.0.1007.0.104first fix for this CVE: 7.0.100

“Up to” means the second version is the fix and is not affected.

Check your lockfile against all CVEs

What security researchers reported

Not named in any threat report yet

Also mentioned in 50 community threat pulses (AlienVault OTX)

Weaker evidence

Pulses are indicator collections that anyone can publish. A mention is not confirmation of exploitation.

References

52 links, grouped by NVD tag (51 duplicates merged)

Mailing List 26

lists.apache.org/thread.html/r089dc67c0358a1556dd279c762c74f32d7a254a54836b7ee2d839d8e%40%3Cdev.tomee.apache.org%3Elists.apache.org/thread.html/r1125f3044a0946d1e7e6f125a6170b58d413ebd4a95157e4608041c7%40%3Cannounce.apache.org%3Elists.apache.org/thread.html/r17aaa3a05b5b7fe9075613dd0c681efa60a4f8c8fbad152c61371b6e%40%3Cusers.tomcat.apache.org%3Elists.apache.org/thread.html/r38a5b7943b9a62ecb853acc22ef08ff586a7b3c66e08f949f0396ab1%40%3Cusers.tomcat.apache.org%3Elists.apache.org/thread.html/r43faacf64570b1d9a4bada407a5af3b2738b0c007b905f1b6b608c65%40%3Cusers.tomcat.apache.org%3Elists.apache.org/thread.html/r47caef01f663106c2bb81d116b8380d62beac9e543dd3f3bc2c2beda%40%3Ccommits.tomee.apache.org%3Elists.apache.org/thread.html/r4afa11e0464408e68f0e9560e90b185749363a66398b1491254f7864%40%3Cusers.tomcat.apache.org%3Elists.apache.org/thread.html/r4f86cb260196e5cfcbbe782822c225ddcc70f54560f14a8f11c6926f%40%3Cusers.tomcat.apache.org%3E
Show 18 moreShow fewerlists.apache.org/thread.html/r549b43509e387a42656f0641fa311bf27c127c244fe02007d5b8d6f6%40%3Cdev.tomcat.apache.org%3Elists.apache.org/thread.html/r57f5e4ced436ace518a9e222fabe27fb785f09f5bf974814cc48ca97%40%3Ccommits.tomee.apache.org%3Elists.apache.org/thread.html/r5e2f1201b92ee05a0527cfc076a81ea0c270be299b87895c0ddbe02b%40%3Cusers.tomcat.apache.org%3Elists.apache.org/thread.html/r61f280a76902b594692f0b24a1dbf647bb5a4c197b9395e9a6796e7c%40%3Cusers.tomcat.apache.org%3Elists.apache.org/thread.html/r6a5633cad1b560a1e51f5b425f02918bdf30e090fdf18c5f7c2617eb%40%3Ccommits.tomee.apache.org%3Elists.apache.org/thread.html/r74328b178f9f37fe759dffbc9c1f2793e66d79d7a8a20d3836551794%40%3Cnotifications.ofbiz.apache.org%3Elists.apache.org/thread.html/r75113652e46c4dee687236510649acfb70d2c63e074152049c3f399d%40%3Cnotifications.ofbiz.apache.org%3Elists.apache.org/thread.html/r772335e6851ad33ddb076218fa4ff70de1bf398d5b43e2ddf0130e5d%40%3Cdev.tomcat.apache.org%3Elists.apache.org/thread.html/r856cdd87eda7af40b50278d6de80ee4b42d63adeb433a34a7bdaf9db%40%3Cnotifications.ofbiz.apache.org%3Elists.apache.org/thread.html/r92d78655c068d0bc991d1edbdfb24f9c5134603e647cade1113d4e0a%40%3Cusers.tomee.apache.org%3Elists.apache.org/thread.html/rb2fc890bef23cbc7f343900005fe1edd3b091cf18dada455580258f9%40%3Cusers.tomcat.apache.org%3Elists.apache.org/thread.html/rbdb1d2b651a3728f0ceba9e0853575b6f90296a94a71836a15f7364a%40%3Cdev.tomee.apache.org%3Elists.apache.org/thread.html/rc068e824654c4b8bd4f2490bec869e29edbfcd5dfe02d47cbf7433b2%40%3Cdev.tomee.apache.org%3Elists.apache.org/thread.html/rcd5cd301e9e7e39f939baf2f5d58704750be07a5e2d3393e40ca7194%40%3Ccommits.tomee.apache.org%3Elists.apache.org/thread.html/rce2af55f6e144ffcdc025f997eddceb315dfbc0b230e3d750a7f7425%40%3Cnotifications.ofbiz.apache.org%3Elists.apache.org/thread.html/rd50baccd1bbb96c2327d5a8caa25a49692b3d68d96915bd1cfbb9f8b%40%3Cusers.tomcat.apache.org%3Elists.apache.org/thread.html/re5eecbe5bf967439bafeeaa85987b3a43f0e6efe06b6976ee768cde2%40%3Cusers.tomcat.apache.org%3Elists.apache.org/thread.html/rf26663f42e7f1a1d1cac732469fb5e92c89908a48b61ec546dbb79ca%40%3Cbugs.httpd.apache.org%3E
↑ ↓ chooseEnter openEsc close