What is CVE-2020-1938?
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.
Its CVSS v3 base vector states that the flaw is reachable remotely over the network, needs no prior authentication, needs no user interaction, and has high impact on confidentiality, integrity, availability. 1 affected-product entry is recorded, across 1 vendor, listed below. The identifier was first published 2434 days ago.
Severity and exploitation probability
- CVSS v3.1 base score
- 9.8 — CRITICAL
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - EPSS (FIRST)
- 99.2% probability of exploitation in the next 30 days, higher than 99.9% of all scored CVEs
- CISA KEV
- Listed since 2022-03-03, federal remediation deadline 2022-03-17
- Threadlinqs priority
- 9/10 — CISA KEV-listed, which Threadlinqs floors at 9
- Published
- 2020-02-24, last modified 2025-10-21
Is CVE-2020-1938 being exploited?
CISA added CVE-2020-1938 to the Known Exploited Vulnerabilities catalog on 2022-03-03, which means the agency holds evidence of exploitation in the wild; US federal civilian agencies had to remediate it by 2022-03-17 under BOD 22-01. Weaponised exploit code for CVE-2020-1938 is publicly available. 11 public proof-of-concept repositories are tracked for this identifier. A ProjectDiscovery Nuclei detection template exists (network/cves/2020/CVE-2020-1938.yaml). It currently carries a trending score of 60 in the Threadlinqs vulnerability feed.
- 00theway/Ghostcat-CNVD-2020-10487 (github)
- lizhianyuguangming/TomcatScanPro (github)
- bkfish/CNVD-2020-10487-Tomcat-Ajp-lfi-Scanner (github)
- tpt11fb/AttackTomcat (github)
- sv3nbeast/CVE-2020-1938-Tomact-file_include-file_read (github)
- xindongzhuaizhuai/CVE-2020-1938 (github)
- laolisafe/CVE-2020-1938 (github)
- Hancheng-Lei/Hacking-Vulnerability-CVE-2020-1938-Ghostcat (github)
Affected products and versions
- Apache: Tomcat
Affected software packages:
maven:org.apache.tomcat.embed:tomcat-embed-core— patched in 9.0.31maven:org.apache.tomcat.embed:tomcat-embed-core— patched in 8.5.51maven:org.apache.tomcat.embed:tomcat-embed-core— patched in 7.0.100
How to fix CVE-2020-1938
Fixed versions are recorded for 3 packages: maven:org.apache.tomcat.embed:tomcat-embed-core 9.0.31, maven:org.apache.tomcat.embed:tomcat-embed-core 8.5.51, maven:org.apache.tomcat.embed:tomcat-embed-core 7.0.100. Because CVE-2020-1938 is KEV-listed, US federal civilian agencies were required to apply the vendor fix, or stop using the product, by 2022-03-17. No vendor patch reference has been recorded for CVE-2020-1938 in the tracked sources. Follow the references below for a fix, and treat the products listed above as exposed until the vendor states otherwise.
Threat activity tracking CVE-2020-1938
4 tracked threats in the Threadlinqs corpus reference CVE-2020-1938, either in the campaign’s CVE list or as an indicator on the campaign record.
- Operation Escaneo: MexicanMafia (PanchoVilla) Intrusion Campaign Against Mexican Government Agencies and Latin American Financial Institutions — HIGH · 2026-10-23
- CyberXero: AI-Augmented Initial Access Broker Targeting Ukrainian Critical Infrastructure and Global WordPress/E-commerce Platforms — HIGH · 2026-10-07
- Attacker Maintains Root-Level MeshCentral Backdoor Inside Thai ISP 3BB, Targets RADIUS Subscriber-Credential Databases (CVE-2024-21762 Toolkit Staged) — HIGH · 2026-09-15
- Chinese-Speaking Operator "Nie" Uses SecFlow AI Orchestration Framework (Claude, Qwen, DeepSeek) and GLUTTON Steganographic Webshell in Multi-Country Espionage Campaign — HIGH · 2026-09-04
Sources
Enriched from CVE.org, FIRST EPSS, CISA KEV, GitHub Security Advisories, public proof-of-concept repositories, ProjectDiscovery Nuclei. Last verified by Threadlinqs on .
Mailing list and disclosure
- lists.apache.org — mailing list
- lists.apache.org — mailing list (r856cdd87eda7af40b50278d6de80ee4b42d63ad)
- lists.apache.org — mailing list (r75113652e46c4dee687236510649acfb70d2c63)
- lists.apache.org — mailing list (rd0774c95699d5aeb5e16e9a600fb2ea296e8117)
- lists.apache.org — mailing list (r74328b178f9f37fe759dffbc9c1f2793e66d79d)
Showing 5 of 20 recorded references.