Actively exploited vulnerability
Apache Struts: code execution flaw under attack
CVE-2017-5638 · Apache Struts Remote Code Execution Vulnerability
What is affected
Apache Struts is mostly run by companies, schools and public bodies, not on home computers. You are unlikely to have it yourself, but organisations that hold your data may. Breaches that start with flaws like this one are how personal data ends up leaked.
Apache Struts Jakarta Multipart parser allows for malicious file upload using the Content-Type value, leading to remote code execution.
What an attacker can do
This is a code execution flaw. It lets an attacker run their own commands or programs on the affected system. In practice that usually means taking it over: installing malware, stealing data or using it to reach other devices on the same network.
- How it is reached
- Over the internet or network
- Access the attacker needs
- No account needed
- Does the victim have to do something?
- No, works without the victim doing anything
CISA records this vulnerability as known to be used in ransomware campaigns: attackers use it to get in, then encrypt files and demand payment.
What to do
- At home: nothing to install. Keep your own devices updated and use a different password for every service, so that a breach at one organisation does not open your other accounts.
- If you administer Apache Struts at work: apply the vendor's fix or mitigation now and review logs for signs of compromise, because the flaw was being exploited before it was listed.
- If the product is past its support date and no fix exists, take it off the internet or retire it.
Apply updates per vendor instructions.
How urgent is it
CISA added this vulnerability to its Known Exploited Vulnerabilities catalogue on November 3, 2021, which means there is reliable evidence of attacks in the wild. US federal agencies must fix it by May 3, 2022, a deadline that has already passed. That deadline does not bind anyone else, but it shows how seriously the agency rates it.
The EPSS model estimates a 100% probability that this flaw will be exploited somewhere in the next 30 days. That is higher than 100.0% of all scored vulnerabilities.
Its CVSS severity score is 9.8 out of 10 (critical), as recorded in the US National Vulnerability Database.
Technical description
The Jakarta Multipart parser in Apache Struts 2 2.3.x before 2.3.32 and 2.5.x before 2.5.10.1 has incorrect exception handling and error-message generation during file-upload attempts, which allows remote attackers to execute arbitrary commands via a crafted Content-Type, Content-Disposition, or Content-Length HTTP header, as exploited in the wild in March 2017 with a Content-Type header containing a #cmd= string.