# CVE-2017-5638: Apache Struts vulnerable to remote arbitrary command execution due to improper input validation

Source: https://junglewise.ai/threats/cve-2017-5638-apache-struts-remote-code-execution-vulnerability  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2018-10-18. Updated: 2026-05-10  
License: CC BY 4.0 with a link back

CVE-2017-5638 · Severity: critical · CVSS 3 · Exploited in the wild · Published 2018-10-18

The Jakarta Multipart parser in Apache Struts 2 fails to properly handle exceptions and error messages during file uploads. Remote attackers can exploit this by sending crafted Content-Type, Content-Disposition, or Content-Length HTTP headers to execute arbitrary commands.

Technologies: [Apache Struts](https://junglewise.ai/threats/technologies/struts), [org.apache.struts:struts2-core (Maven)](https://junglewise.ai/threats/technologies/org-apache-struts-struts2-core). Vendors: [Apache](https://junglewise.ai/threats/vendors/apache), [Maven](https://junglewise.ai/threats/vendors/maven).

## Quick answers

**Is CVE-2017-5638 exploited in the wild?** Yes. CVE-2017-5638 is known to be exploited in the wild, first recorded on 3 November 2021. Treat it as urgent.

**How severe is CVE-2017-5638?** Critical severity, with a CVSS score of 3, published 18 October 2018.

**Which products and versions are affected?** org.apache.struts:struts2-core (Maven) ECOSYSTEM:introduced=2.3.0,fixed=2.3.32.

**Is there a fix for CVE-2017-5638?** Yes. org.apache.struts:struts2-core (Maven): upgrade to 2.3.32 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2017-5638 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2017-5638?** Check whether you run Apache Struts or org.apache.struts:struts2-core (Maven) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- org.apache.struts:struts2-core (Maven): upgrade to 2.3.32 or later

  ```sh
  # set org.apache.struts:struts2-core to 2.3.32 in your pom.xml or build.gradle
  ```


## Affected products

- Apache Struts 2 2.3.x before 2.3.32, 2.5.x before 2.5.10.1

## Identifiers

- CVE-2017-5638
- GHSA-j77q-2qqg-6989

## Timeline

- 2017-03: exploited: Exploited in the wild with a Content-Type header containing a #cmd= string.
- 2021-11-03: kev added: Added to CISA Known Exploited Vulnerabilities Catalog.

## Related threats

- [Apache Struts race condition in message formatter for date/time arguments](https://junglewise.ai/threats/cve-2026-104714-concurrent-execution-using-shared-resource-with-improper)
- [Apache Struts REST plugin unbounded request body denial of service](https://junglewise.ai/threats/cve-2026-104713-allocation-of-resources-without-limits-or-throttling)
- [Apache Struts asymmetric resource consumption in BigDecimal rendering](https://junglewise.ai/threats/cve-2026-104712-asymmetric-resource-consumption-amplification-vulnerability-in)
- [Apache Struts expression language injection in legacy RESTful action mapper](https://junglewise.ai/threats/cve-2026-104711-improper-neutralization-of-special-elements-used-in-an)
- [Apache Struts XXE injection in XWork component](https://junglewise.ai/threats/cve-2025-68493-apache-struts-xxe-injection-in-xwork-component)
