CVE-2020-1938

CRITICAL KEV NUCLEI LAB

Apache Tomcat 7.0.0-7.0.99, 8.5.0-8.5.50, 9.0.0.M1-9.0.0.30 - Remote Code Execution via AJP File Read and JSP Processing

Title source: llm
STIX 2.1

Exploitation Summary

CVE-2020-1938 is actively exploited and listed in the CISA Known Exploited Vulnerabilities (KEV) catalog, added March 3, 2022. EIP tracks 48 public exploits from researchers including SunCSR, YDHCUI, 00theway, including a Metasploit module auxiliary/admin/http/tomcat_ghostcat. A Nuclei detection template is also available.

AI-analyzed exploit summary This Metasploit module exploits CVE-2020-1938 (Ghostcat) in Apache Tomcat by crafting malicious AJP packets to read arbitrary files or execute JSP code. It leverages the AJP protocol's trust model to bypass security restrictions.

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.

Exploits (48)

exploitdb WORKING POC VERIFIED
by SunCSR · rubywebappsmultiple
https://www.exploit-db.com/exploits/49039

This Metasploit module exploits CVE-2020-1938 (Ghostcat) in Apache Tomcat by crafting malicious AJP packets to read arbitrary files or execute JSP code. It leverages the AJP protocol's trust model to bypass security restrictions.

Classification
Working Poc 95%
Attack Type
Rce
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat 9.0.0.M1 to 9.0.0.30, 8.5.0 to 8.5.50, 7.0.0 to 7.0.99
No auth needed
Prerequisites: AJP port accessible to untrusted users · Network access to the target
devstral-2 · analyzed Feb 16, 2026 Full analysis →
exploitdb WORKING POC
by YDHCUI · pythonwebappsmultiple
https://www.exploit-db.com/exploits/48143

This exploit targets CVE-2020-1938 (Ghostcat), a local file inclusion (LFI) vulnerability in Apache Tomcat's AJP protocol. The PoC constructs malicious AJP packets to read arbitrary files from the server.

Classification
Working Poc 90%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: Network access to AJP port (default 8009) · Vulnerable Tomcat version
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 404 stars
by 00theway · remote
https://github.com/00theway/Ghostcat-CNVD-2020-10487

This repository contains a Python-based exploit for CVE-2020-1938 (Ghostcat), which leverages the AJP protocol in Apache Tomcat to achieve arbitrary file read and remote code execution. The PoC constructs malicious AJP packets to manipulate Tomcat's file inclusion and execution mechanisms.

Classification
Working Poc 95%
Attack Type
Rce | Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: Network access to Tomcat's AJP port (typically 8009) · Tomcat version vulnerable to CVE-2020-1938
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 292 stars
by bkfish · infoleak
https://github.com/bkfish/CNVD-2020-10487-Tomcat-Ajp-lfi-Scanner

This repository contains a Python-based exploit for CVE-2020-1938 (Ghostcat), which is a local file inclusion (LFI) vulnerability in Apache Tomcat AJP protocol. The exploit allows reading arbitrary files from the server via crafted AJP requests.

Classification
Working Poc 90%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: AJP connector (port 8009) exposed · Vulnerable Tomcat version
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 284 stars
by lizhianyuguangming · remote
https://github.com/lizhianyuguangming/TomcatScanPro

This repository contains a Python-based exploit tool for Tomcat vulnerabilities, including CVE-2017-12615 and CNVD-2020-10487, with features for weak credential brute-forcing, WAR file deployment, and remote code execution via JSP shells.

Classification
Working Poc 90%
Attack Type
Rce
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (multiple versions)
Auth required
Prerequisites: Target URL with exposed Tomcat manager interface · Valid or brute-forced credentials for authentication · Network access to the target
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 250 stars
by tpt11fb · poc
https://github.com/tpt11fb/AttackTomcat

This repository contains a Java-based tool for exploiting multiple Tomcat vulnerabilities, including CVE-2017-12615 (PUT method file upload). It includes both a GUI and command-line interface for testing and exploiting vulnerabilities such as file upload, weak authentication, and AJP file read/inclusion.

Classification
Working Poc 90%
Attack Type
Rce
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (versions affected by CVE-2017-12615)
No auth needed
Prerequisites: Network access to vulnerable Tomcat instance · PUT method enabled on Tomcat · Python3 for AJP vulnerability testing
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 52 stars
by sv3nbeast · remote
https://github.com/sv3nbeast/CVE-2020-1938-Tomact-file_include-file_read

This repository contains a Python-based PoC for CVE-2020-1938, which exploits a file inclusion and file read vulnerability in Apache Tomcat via the AJP protocol. The scripts demonstrate how to read and include files from the Tomcat ROOT directory by crafting malicious AJP requests.

Classification
Working Poc 95%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: Network access to Tomcat's AJP port (default 8009) · Tomcat version vulnerable to CVE-2020-1938
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 45 stars
by xindongzhuaizhuai · infoleak
https://github.com/xindongzhuaizhuai/CVE-2020-1938

This is a Python-based proof-of-concept exploit for CVE-2020-1938, targeting Apache Tomcat's AJP protocol. It implements the AJP protocol to perform Local File Inclusion (LFI) attacks by crafting malicious AJP requests.

Classification
Working Poc 95%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP protocol)
No auth needed
Prerequisites: Network access to the target's AJP port (typically 8009) · Vulnerable version of Apache Tomcat
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WRITEUP 38 stars
by laolisafe · poc
https://github.com/laolisafe/CVE-2020-1938

This repository contains a writeup for CVE-2020-1938, an Apache Tomcat vulnerability, with instructions for exploitation and environment setup. It references an external exploit script and includes screenshots of the process.

Classification
Writeup 90%
Attack Type
Rce
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat 8.5.32
No auth needed
Prerequisites: Apache Tomcat 8.5.32 · Java · PowerShell · Python for exploit script
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 16 stars
by Hancheng-Lei · infoleak
https://github.com/Hancheng-Lei/Hacking-Vulnerability-CVE-2020-1938-Ghostcat

This is a Python-based PoC for CVE-2020-1938 (Ghostcat), an AJP protocol vulnerability in Apache Tomcat. It implements AJP packet serialization/deserialization to exploit local file inclusion (LFI) via malformed requests.

Classification
Working Poc 95%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: Network access to AJP port (default 8009) · Vulnerable Tomcat version (6.x, 7.x < 7.0.100, 8.x < 8.5.51, 9.x < 9.0.31)
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec SCANNER 15 stars
by woaiqiukui · poc
https://github.com/woaiqiukui/CVE-2020-1938TomcatAjpScanner

This repository contains a Python-based scanner for CVE-2020-1938, which is a Ghostcat vulnerability affecting Apache Tomcat AJP protocol. The scanner is designed to detect vulnerable Tomcat instances by sending crafted AJP requests and analyzing responses.

Classification
Scanner 90%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP protocol)
No auth needed
Prerequisites: Network access to the target Tomcat server · AJP protocol enabled on the target
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 11 stars
by fairyming · poc
https://github.com/fairyming/CVE-2020-1938

This is a Python-based exploit for CVE-2020-1938, also known as the 'Ghostcat' vulnerability, which affects Apache Tomcat's AJP protocol. The exploit allows for local file inclusion (LFI) and potential remote code execution (RCE) by manipulating AJP request attributes.

Classification
Working Poc 90%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP protocol)
No auth needed
Prerequisites: Network access to the target's AJP port (typically 8009) · Vulnerable version of Apache Tomcat
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 9 stars
by dacade · poc
https://github.com/dacade/CVE-2020-1938

This repository contains a Python-based PoC for CVE-2020-1938, an AJP (Apache JServ Protocol) file read and RCE vulnerability in Apache Tomcat. The script implements AJP protocol handling to exploit the vulnerability, allowing file reads and potential command execution via crafted requests.

Classification
Working Poc 90%
Attack Type
Rce | Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: Network access to vulnerable Tomcat AJP port (default 8009) · Vulnerable Tomcat version (e.g., 6.x, 7.x, 8.x, 9.x prior to fixes)
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 8 stars
by doggycheng · infoleak
https://github.com/doggycheng/CNVD-2020-10487

This is a Python-based exploit for CVE-2020-1938 (Ghostcat), targeting Apache Tomcat's AJP protocol to achieve local file inclusion (LFI) and potential remote code execution (RCE). The script implements the AJP protocol to send crafted requests and read responses.

Classification
Working Poc 90%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: AJP connector (port 8009) exposed · Vulnerable Tomcat version (6.x, 7.x < 7.0.100, 8.x < 8.5.51, 9.x < 9.0.31)
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec SCANNER 7 stars
by fatal0 · poc
https://github.com/fatal0/tomcat-cve-2020-1938-check

This repository contains a Go-based scanner for CVE-2020-1938 (Ghostcat), which checks if a target Apache Tomcat server is vulnerable by sending a crafted AJP request and analyzing the response. It does not include exploit code for achieving RCE but verifies vulnerability status.

Classification
Scanner 95%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: AJP protocol access to the target Tomcat server
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 6 stars
by w4fz5uck5 · infoleak
https://github.com/w4fz5uck5/CVE-2020-1938-Clean-Version

This is a clean and readable Python PoC for CVE-2020-1938 (GhostCat), which exploits a file read vulnerability in Apache Tomcat via AJP protocol by manipulating servlet attributes. It allows reading arbitrary files from the webapps directory but does not achieve RCE.

Classification
Working Poc 95%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: AJP port (default 8009) accessible · Vulnerable Tomcat version
devstral-2 · analyzed Feb 16, 2026 Full analysis →
github WORKING POC 5 stars
by dacade · pythonpoc
https://github.com/dacade/CVE-POC/tree/master/CVE-2020-1938

This repository contains a functional Python exploit for CVE-2020-1938, an AJP (Apache JServ Protocol) file read and remote code execution vulnerability in Apache Tomcat. The exploit implements AJP protocol handling to read arbitrary files or execute commands via crafted requests.

Classification
Working Poc 95%
Attack Type
Rce
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: AJP connector enabled and accessible · Network access to target
devstral-2 · analyzed Feb 27, 2026 Full analysis →
nomisec WORKING POC 3 stars
by YounesTasra-R4z3rSw0rd · infoleak
https://github.com/YounesTasra-R4z3rSw0rd/CVE-2020-1938

This is a Python-based exploit for CVE-2020-1938 (Ghostcat), targeting Apache Tomcat AJP protocol. It implements AJP packet serialization/deserialization to craft malicious requests, enabling file read and potential RCE via file inclusion.

Classification
Working Poc 90%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: Network access to AJP port (typically 8009) · Vulnerable Tomcat version (6.x, 7.x < 7.0.100, 8.x < 8.5.51, 9.x < 9.0.31)
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 3 stars
by Just1ceP4rtn3r · poc
https://github.com/Just1ceP4rtn3r/CVE-2020-1938-Tool

This repository contains a Python-based tool for exploiting CVE-2020-1938 (Ghostcat), which allows arbitrary file reads via the AJP protocol in Apache Tomcat. The tool includes functionality for both single-target exploitation and batch scanning of multiple hosts.

Classification
Working Poc 90%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: AJP connector enabled on target · Network access to port 8009 (or custom AJP port)
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 3 stars
by delsadan · poc
https://github.com/delsadan/CNVD-2020-10487-Bulk-verification

This repository contains a Python-based proof-of-concept for CVE-2020-1938 (CNVD-2020-10487), an Apache Tomcat AJP Local File Inclusion (LFI) vulnerability. The script includes functionality for bulk verification and automated screenshot capture for validation.

Classification
Working Poc 90%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: Network access to vulnerable Tomcat AJP port (typically 8009) · Python 2.7 and Python 3.7 environments
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 2 stars
by Warelock · remote
https://github.com/Warelock/cve-2020-1938

This is a Python-based proof-of-concept exploit for CVE-2020-1938, also known as the 'Ghostcat' vulnerability, which affects Apache Tomcat's AJP protocol. The exploit allows for local file inclusion (LFI) and potential remote code execution (RCE) by manipulating AJP request attributes.

Classification
Working Poc 90%
Attack Type
Lfi | Rce
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP protocol)
No auth needed
Prerequisites: Network access to the AJP port (typically 8009) · Vulnerable version of Apache Tomcat
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WRITEUP 2 stars
by h7hac9 · poc
https://github.com/h7hac9/CVE-2020-1938

This repository provides detection rules (Suricata and Bro) for CVE-2020-1938 (Ghostcat), a vulnerability in Apache Tomcat AJP protocol. It does not contain exploit code but includes signatures to detect exploitation attempts.

Classification
Writeup 90%
Attack Type
Info Leak
Complexity
Trivial
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: Network access to Tomcat AJP port (default 8009)
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 2 stars
by sgdream · poc
https://github.com/sgdream/CVE-2020-1938

This repository contains a PoC for CVE-2020-1938, an AJP protocol vulnerability in Apache Tomcat allowing arbitrary file reads and file inclusion via crafted requests. The exploit is written in Java and requires compilation using Maven.

Classification
Working Poc 90%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat 8.5.32 (and other vulnerable versions)
No auth needed
Prerequisites: Access to AJP port (typically 8009) · Vulnerable Tomcat version
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 1 stars
by jptr218 · infoleak
https://github.com/jptr218/ghostcat

This PoC exploits CVE-2020-1938 (Ghostcat) in Apache Tomcat via AJP protocol to perform LFI and JSP payload execution. It crafts AJP packets to read files or execute JSP code by leveraging misconfigured file access controls.

Classification
Working Poc 95%
Attack Type
Rce
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector, versions 6/7/8/9)
No auth needed
Prerequisites: AJP port (usually 8009) exposed · Tomcat with default AJP configuration
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec SCANNER 1 stars
by Neko-chanQwQ · poc
https://github.com/Neko-chanQwQ/CVE-2020-1938

This repository contains a Python-based scanner for CVE-2020-1938, which checks for vulnerable Apache Tomcat versions and open AJP ports. It uses Nmap to scan targets and determine if they are vulnerable based on version numbers.

Classification
Scanner 90%
Attack Type
Info Leak
Complexity
Trivial
Reliability
Reliable
Target: Apache Tomcat 6, 7 (up to 7.0.100), 8 (up to 8.5.51), 9 (up to 9.0.31)
No auth needed
Prerequisites: Nmap installed · Python environment · Target IP addresses
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WRITEUP 1 stars
by streghstreek · poc
https://github.com/streghstreek/CVE-2020-1938

This repository provides detection rules (Suricata and Bro/Zeek) for CVE-2020-1938 (Ghostcat), a vulnerability in Apache Tomcat AJP protocol. It does not contain exploit code but includes signatures to detect exploitation attempts.

Classification
Writeup 90%
Attack Type
Info Leak
Complexity
Trivial
Reliability
Reliable
Target: Apache Tomcat (AJP connector, versions 6/7/8/9)
No auth needed
Prerequisites: Network access to Tomcat's AJP port (default 8009)
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WRITEUP 1 stars
by shaunmclernon · poc
https://github.com/shaunmclernon/ghostcat-verification

This repository provides a writeup and verification steps for CVE-2020-1938 (Ghostcat), an AJP file read/inclusion vulnerability in Apache Tomcat. It includes instructions for testing Tomcat 7, 8, and 9 using a Python-based AJP request tool (AJPy) to read files like /WEB-INF/web.xml.

Classification
Writeup 90%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat 7, 8, and 9 (specifically tested on Tomcat 8.5.32)
No auth needed
Prerequisites: docker · python · git · AJPy tool
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC
by duckpigdog · infoleak
https://github.com/duckpigdog/Tomcat-AJP-CVE-2020-1938

This repository contains a functional Python exploit for CVE-2020-1938 (Ghostcat), which exploits an AJP file read/inclusion vulnerability in Apache Tomcat. The script crafts malicious AJP requests to read arbitrary files or execute JSP code via path manipulation.

Classification
Working Poc 95%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: AJP port (typically 8009) exposed · Tomcat version vulnerable to CVE-2020-1938
devstral-2 · analyzed May 25, 2026 Full analysis →
nomisec WORKING POC
by cyberguardsec101-sketch · remote
https://github.com/cyberguardsec101-sketch/ghostcat

The repository contains a functional Python exploit for CVE-2020-1938 (Ghostcat), which leverages AJP protocol misconfigurations to read arbitrary files from Apache Tomcat servers. The exploit includes multiple methods for file reading via path traversal and AJP packet manipulation.

Classification
Working Poc 95%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector, versions 6/7/8/9)
No auth needed
Prerequisites: AJP connector (port 8009) exposed · Tomcat with file read access via AJP
devstral-2 · analyzed May 19, 2026 Full analysis →
nomisec WORKING POC
by si1ence90 · remote
https://github.com/si1ence90/Ghostcat-Tomcat-AJP-Exploit-Py3

This repository contains a functional Python exploit for CVE-2020-1938 (Ghostcat), which leverages the AJP protocol to perform local file inclusion (LFI) on vulnerable Apache Tomcat servers. The exploit constructs and sends malicious AJP packets to read arbitrary files from the target system.

Classification
Working Poc 95%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: AJP port (usually 8009) exposed and accessible · Vulnerable Tomcat version (e.g., 6.x, 7.x, 8.x, 9.x)
devstral-2 · analyzed May 19, 2026 Full analysis →
nomisec WRITEUP
by aidilzlkfli · poc
https://github.com/aidilzlkfli/Scanning

This repository provides a detailed technical analysis of CVE-2020-1938 (Ghostcat), including vulnerability interpretation, Nessus scan findings, and remediation steps. It also covers broader topics like packet analysis, Nmap output interpretation, and OS fingerprinting.

Classification
Writeup 95%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat AJP Protocol
No auth needed
Prerequisites: Access to Nessus scan results · Network scan data
devstral-2 · analyzed May 19, 2026 Full analysis →
nomisec WRITEUP
by sangrok-jeon · poc
https://github.com/sangrok-jeon/CVE-2020-1938-Tomcat-AJP-Ghostcat--Analysis

This repository contains a detailed technical analysis of CVE-2020-1938 (Ghostcat), including vulnerability background, attack flow using PoC, root cause analysis based on Tomcat source code, and patch comparison between versions 9.0.30 and 9.0.31.

Classification
Writeup 100%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat 9.0.30
No auth needed
Prerequisites: AJP Connector enabled and exposed · Vulnerable Tomcat version
devstral-2 · analyzed Apr 10, 2026 Full analysis →
nomisec WORKING POC
by With-fate · infoleak
https://github.com/With-fate/CVE-2020-1938

This repository contains a functional Python exploit for CVE-2020-1938, also known as the 'Ghostcat' vulnerability, which is a file read/inclusion flaw in Apache Tomcat's AJP connector. The exploit implements the AJP protocol to craft malicious requests that can read arbitrary files from the server.

Classification
Working Poc 95%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: Network access to the AJP port (typically 8009) · Apache Tomcat with AJP connector enabled
devstral-2 · analyzed Apr 10, 2026 Full analysis →
github WORKING POC
by Andyyyyuan · pythonpoc
https://github.com/Andyyyyuan/CVE-Poc/tree/main/CVE-2020-1938&CNVD-2020-10487

The repository contains a functional Python exploit for CVE-2020-1938 (Ghostcat), which targets Apache Tomcat's AJP protocol to achieve arbitrary file read and remote code execution. The exploit constructs malicious AJP packets to manipulate file attributes and execute commands.

Classification
Working Poc 95%
Attack Type
Rce | Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP protocol)
No auth needed
Prerequisites: AJP port exposed · Tomcat version vulnerable to CVE-2020-1938
devstral-2 · analyzed Apr 10, 2026 Full analysis →
github WRITEUP
by Zahid-secure · poc
https://github.com/Zahid-secure/cve-walkthrough-labs/tree/main/2020/CVE-2020-1938-BasicPentesting-tryhackme

This is a detailed technical walkthrough of the Basic Pentesting TryHackMe room, covering reconnaissance, enumeration, exploitation of weak credentials, and privilege escalation via insecure file permissions. It includes step-by-step commands, tool usage, and mitigation strategies.

Classification
Writeup 100%
Attack Type
Auth Bypass | Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat, Samba, SSH
No auth needed
Prerequisites: network access to target · wordlists (rockyou.txt, dirbuster) · tools (nmap, ffuf, enum4linux, hydra, john the ripper)
devstral-2 · analyzed Mar 13, 2026 Full analysis →
nomisec WORKING POC
by abrewer251 · remote
https://github.com/abrewer251/CVE-2020-1938_Ghostcat-PoC

This repository contains a Python-based exploit for CVE-2020-1938 (Ghostcat), which leverages the AJP protocol to read arbitrary files from vulnerable Apache Tomcat servers. The tool includes multi-threaded scanning, custom wordlist support, and JSP payload generation for post-exploitation.

Classification
Working Poc 95%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat 9.0.0.M1 to 9.0.0.30, 8.5.0 to 8.5.50, 7.0.0 to 7.0.99
No auth needed
Prerequisites: Network access to the AJP port (typically 8009) · Vulnerable Apache Tomcat version
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WRITEUP
by Joshua8821 · poc
https://github.com/Joshua8821/CNVD

This repository contains frontend configuration files for a GDScript formatting web application. No exploit code or vulnerability details for CVE-2020-1938 are present.

Classification
Writeup 90%
Attack Type
Other
Complexity
Trivial
Reliability
Theoretical
Target: GDScript Formatter Frontend
No auth needed
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC
by hopsypopsy8 · poc
https://github.com/hopsypopsy8/CVE-2020-1938-Exploitation

This repository provides a detailed proof-of-concept for exploiting CVE-2020-1938, an arbitrary JSP upload vulnerability in Apache Tomcat leading to remote code execution. It includes steps for generating a malicious .war file using msfvenom, setting up a Metasploit listener, and executing the payload.

Classification
Working Poc 95%
Attack Type
Rce
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat 9.0.0.M1 to 9.0.0.30, 8.5.0 to 8.5.50, 7.0.0 to 7.0.99
Auth required
Prerequisites: Access to Tomcat Manager interface · Valid credentials for Tomcat Manager · Ability to upload files
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC
by RedTeam-Rediron · poc
https://github.com/RedTeam-Rediron/CVE-2020-1938

This is a Python-based exploit for CVE-2020-1938, targeting Apache Tomcat's AJP protocol. The code implements the AJP protocol to craft malicious requests, potentially leading to remote code execution (RCE) or information disclosure.

Classification
Working Poc 95%
Attack Type
Rce
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: Network access to the AJP port (typically 8009) · Vulnerable version of Apache Tomcat
devstral-2 · analyzed Feb 16, 2026 Full analysis →
github WORKING POC
by Oracle-Security · pythonpoc
https://github.com/Oracle-Security/Weaponized-CVEs/tree/main/CVE-2020-1938.py

This repository contains a functional exploit for CVE-2020-1938, a vulnerability in Apache Tomcat's AJP protocol. The exploit crafts malicious AJP packets to achieve remote code execution (RCE) by manipulating request attributes.

Classification
Working Poc 95%
Attack Type
Rce
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: Network access to Tomcat's AJP port (default 8009) · Vulnerable Tomcat version (pre-patch)
devstral-2 · analyzed Feb 27, 2026 Full analysis →
nomisec WORKING POC
by acodervic · infoleak
https://github.com/acodervic/CVE-2020-1938-MSF-MODULE

This is a Metasploit module for CVE-2020-1938 (Ghostcat), which exploits a vulnerability in Apache Tomcat's AJP protocol to read arbitrary files or execute JSP files, potentially leading to remote code execution. The module crafts malicious AJP packets to interact with the Tomcat server.

Classification
Working Poc 95%
Attack Type
Rce
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat 9.0.0.M1 to 9.0.0.30, 8.5.0 to 8.5.50, 7.0.0 to 7.0.99
No auth needed
Prerequisites: AJP port accessible to untrusted users · Tomcat server with vulnerable configuration
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC
by MateoSec · poc
https://github.com/MateoSec/ghostcatch

This Python script scans for Apache Tomcat server.xml files and disables AJP connectors to mitigate CVE-2020-1938 (Ghostcat). It searches for specific AJP connector configurations and comments them out.

Classification
Working Poc 90%
Attack Type
Other
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat
No auth needed
Prerequisites: Access to the filesystem where Apache Tomcat is installed
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec STUB
by Umesh2807 · poc
https://github.com/Umesh2807/Ghostcat

The repository contains only a README.md file with minimal information about CVE-2020-1938 (Ghostcat) but no actual exploit code or technical details.

Classification
Stub 10%
Attack Type
Other
Complexity
Trivial
Reliability
Theoretical
Target: Apache Tomcat (versions affected by CVE-2020-1938)
No auth needed
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC
by whatboxapp · poc
https://github.com/whatboxapp/GhostCat-LFI-exp

This is a Python-based exploit for CVE-2020-1938 (GhostCat), which leverages the AJP protocol to perform Local File Inclusion (LFI) on vulnerable Apache Tomcat servers. The PoC implements AJP packet serialization and deserialization to craft malicious requests.

Classification
Working Poc 95%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: Network access to AJP port (typically 8009) · Vulnerable Tomcat version (e.g., 6.x, 7.x, 8.x, 9.x with AJP enabled)
devstral-2 · analyzed Feb 16, 2026 Full analysis →
vulncheck_xdb WORKING POC
infoleak
https://github.com/WHtig3r/CVE-2020-1938

This repository contains a functional Python exploit for CVE-2020-1938, a vulnerability in Apache Tomcat's AJP protocol. The exploit implements AJP packet serialization and deserialization to craft malicious requests, demonstrating the ability to manipulate server behavior.

Classification
Working Poc 95%
Attack Type
Rce
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector)
No auth needed
Prerequisites: Network access to AJP port (typically 8009) · Vulnerable Tomcat version
devstral-2 · analyzed Feb 25, 2026 Full analysis →
vulncheck_xdb WORKING POC
remote
https://github.com/LandGrey/ClassHound

ClassHound is a Python-based tool that automates the exploitation of arbitrary file download vulnerabilities (including CVE-2020-1938) to recursively download and decompile Java class files, extracting source code. It supports various traversal techniques, POST/GET requests, and integrates with Ghostcat for AJP file read exploitation.

Classification
Working Poc 95%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat (AJP connector), generic Java web applications with arbitrary file download vulnerabilities
No auth needed
Prerequisites: access to a vulnerable endpoint with arbitrary file download capability · Java environment for decompilation · network access to target
devstral-2 · analyzed Feb 25, 2026 Full analysis →
metasploit WORKING POC
by A Security Researcher of Chaitin Tech, SunCSR Team · rubypoc
https://github.com/rapid7/metasploit-framework/blob/master/modules/auxiliary/admin/http/tomcat_ghostcat.rb

This Metasploit module exploits CVE-2020-1938 (Ghostcat) to read arbitrary files from Apache Tomcat via the AJP protocol by manipulating request attributes. It does not include RCE but demonstrates file read capabilities.

Classification
Working Poc 95%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Apache Tomcat 9.0.0.M1 to 9.0.0.30, 8.5.0 to 8.5.50, 7.0.0 to 7.0.99
No auth needed
Prerequisites: AJP port (default 8009) accessible to attacker · Vulnerable Tomcat version
devstral-2 · analyzed Feb 16, 2026 Full analysis →

Nuclei Templates (1)

Ghostcat - Apache Tomcat - AJP File Read/Inclusion Vulnerability
CRITICALby milo2012
Shodan: title:"Apache Tomcat" || http.title:"apache tomcat"
FOFA: title="apache tomcat"

References (52)

Core 52
Core References
Third Party Advisory mailing-list x_refsource_mlist
https://lists.debian.org/debian-lts-announce/2020/03/msg00006.html
Third Party Advisory vendor-advisory x_refsource_suse
http://lists.opensuse.org/opensuse-security-announce/2020-03/msg00025.html
Third Party Advisory vendor-advisory x_refsource_gentoo
https://security.gentoo.org/glsa/202003-43
Mailing List, Third Party Advisory vendor-advisory x_refsource_suse
http://lists.opensuse.org/opensuse-security-announce/2020-05/msg00002.html
Third Party Advisory vendor-advisory x_refsource_debian
https://www.debian.org/security/2020/dsa-4673
Third Party Advisory vendor-advisory x_refsource_debian
https://www.debian.org/security/2020/dsa-4680
Third Party Advisory mailing-list x_refsource_mlist
https://lists.debian.org/debian-lts-announce/2020/05/msg00026.html
Patch, Third Party Advisory x_refsource_misc
https://www.oracle.com/security-alerts/cpujul2020.html
Third Party Advisory x_refsource_confirm
https://security.netapp.com/advisory/ntap-20200226-0002/
Patch, Third Party Advisory x_refsource_misc
https://www.oracle.com/security-alerts/cpuoct2020.html
Patch, Third Party Advisory x_refsource_misc
https://www.oracle.com/security-alerts/cpujan2021.html

Scores

CVSS v3 9.8
EPSS 0.9447
EPSS Percentile 100.0%
Attack Vector NETWORK
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

CISA SSVC

Vulnrichment
Exploitation active
Automatable yes
Technical Impact total

Details

CISA KEV 2022-03-03
VulnCheck KEV 2020-04-15
InTheWild.io 2020-04-15
ENISA EUVD EUVD-2020-0481
Status published
Products (36)
apache/geode 1.12.0
apache/tomcat 7.0.0 - 7.0.100
blackberry/good_control < 5.2.58.38
blackberry/workspaces_server 7.0.1
blackberry/workspaces_server 7.1.2
blackberry/workspaces_server 8.1.0
blackberry/workspaces_server 9.0
debian/debian_linux 8.0
debian/debian_linux 9.0
debian/debian_linux 10.0
... and 26 more
Published Feb 24, 2020
KEV Added Mar 03, 2022
Tracked Since Feb 18, 2026