CVE-2017-5638 is a critical vulnerability affecting certain versions of Apache Struts, on which many current Java-based web applications are built. This vulnerability has also achieved a maximum 100/100 OVS score due to the way in which threat actors have been actively exploiting it for a variety of objectives.
CVE-2017-5638 is a severe vulnerability affecting Apache Struts 2 2.3.x before 2.3.32 and 2.5.x before 184.108.40.206. This vulnerability was disclosed after Apache patched the vulnerability on 8 March 2017, which was accompanied by a US-CERT security advisory on the same day. The vulnerability allows threat actors to achieve Remote Code Execution (RCE) by sending a malicious payload with a modified “Content-Type” request header when uploading a file to the Jakarta Multipart parser, which improperly validates user input. This would provide threat actors with an easy method to achieve initial compromise on an organisation’s servers hosting affecting the Java web-applications, potentially allowing lateral movement to database instances and other hosts.
Similarly to previous entries in this blog series, CVE-2017-5638 was rapidly exploited by opportunistic threat actors looking to target vulnerable hosts for crypto-jacking purposes before organisations patched their Struts-based web applications. Threat actors like Zealot, MassMiner, Beapy, Panda and other cybercriminals rapidly added the vulnerability to their arsenal to target organisations with crypto-mining malware, allowing the cybercriminals to mine Monero, Bitcoin and other cryptocurrencies using the compromised hosts.
CVE-2017-5638 was then exploited by threat actors in high-profile breaches, such as the 2017 Equifax and Vevo breaches, which targeted unpatched Struts-based applocations on both organisations’ public-facing infrastructure, leading to the exfiltration of 3.12 TB of Vevo data and 143m Equifax customer records, one of the largest recorded breaches at the time. The vulnerability has also been observed being exploited in 2018 by the infamous Mirai botnet, a notorious botnet looking to compromise IoT devices for use in DDoS attacks.
Despite the vulnerability being published in 2017 and exploited mainly in 2018, cybercriminals are still registering interest in exploiting CVE-2017-5638 on underground hacking forums. The following post on a Chinese-language forum discusses the vulnerability and how to exploit it:
Due to the continued exploitation in the wild of this critical vulnerability by a variety of threat actors, Orpheus has attributed a maximal score of 100/100 to CVE-2017-5638. In addition, we recommend organisations apply the following mitigation advice in order to patch vulnerable instances in order to avoid exploitation and initial compromise:
- Upgrade vulnerable instances to the latest version of Struts
- Whitelist “Content-type” headers to block malicious payloads attempting to exploit the vulnerability
- Switch Multipart parsers to a third-party plugin