Apache Struts up to 2.3.31/2.5.10 Jakarta Multipart Parser Content-Type exceptional condition

| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 8.4 | $0-$5k | 0.00 |
Summary
A vulnerability described as critical has been identified in Apache Struts up to 2.3.31/2.5.10. This affects an unknown function of the component Jakarta Multipart Parser. Executing a manipulation as part of Content-Type can lead to input validation. This vulnerability is tracked as CVE-2017-5638. The attack can be launched remotely. Moreover, an exploit is present. Upgrading the affected component is recommended.
Details
A vulnerability classified as critical was found in Apache Struts up to 2.3.31/2.5.10 (Programming Tool Software). This vulnerability affects an unknown code block of the component Jakarta Multipart Parser. The manipulation as part of a Content-Type leads to a input validation vulnerability. The CWE definition for the vulnerability is CWE-755. The product does not handle or incorrectly handles an exceptional condition. As an impact it is known to affect confidentiality, integrity, and availability. CVE summarizes:
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.
The bug was discovered 03/06/2017. The weakness was disclosed 03/06/2017 by Nike Zheng as S2-45 as confirmed security bulletin (Website). The advisory is shared for download at cwiki.apache.org. This vulnerability was named CVE-2017-5638 since 01/29/2017. The attack can be initiated remotely. No form of authentication is required for a successful exploitation. Technical details are unknown but a public exploit is available.
A public exploit has been developed by Vex Woo in Python and been published 1 days after the advisory. It is possible to download the exploit at securityfocus.com. It is declared as attacked. As 0-day the estimated underground price was around $5k-$25k. The vulnerability scanner Nessus provides a plugin with the ID 97610 (Apache Struts 2.3.5 - 2.3.31 / 2.5.x < 2.5.10.1 Jakarta Multipart Parser RCE (remote)), which helps to determine the existence of the flaw in a target environment. It is assigned to the family CGI abuses and running in the context r. The commercial vulnerability scanner Qualys is able to test this issue with plugin 150175 (Apache Struts Remote Code Execution Vulnerability (S2-046)). This issue was added on 11/03/2021 to the CISA Known Exploited Vulnerabilities Catalog with a due date of 05/03/2022:
Apply updates per vendor instructions.Upgrading to version 2.3.32 or 2.5.10.1 eliminates this vulnerability. A possible mitigation has been published immediately after the disclosure of the vulnerability.
The vulnerability is also documented in the databases at Exploit-DB (41570), Tenable (97610), SecurityFocus (BID 96729†) and SecurityTracker (ID 1037973†). The entries VDB-100050, VDB-100042, VDB-100043 and VDB-100044 are pretty similar. Once again VulDB remains the best source for vulnerability data.
Product
Type
Vendor
Name
Version
- 2.3.0
- 2.3.1
- 2.3.2
- 2.3.3
- 2.3.4
- 2.3.5
- 2.3.6
- 2.3.7
- 2.3.8
- 2.3.9
- 2.3.10
- 2.3.11
- 2.3.12
- 2.3.13
- 2.3.14
- 2.3.15
- 2.3.16
- 2.3.17
- 2.3.18
- 2.3.19
- 2.3.20
- 2.3.21
- 2.3.22
- 2.3.23
- 2.3.24
- 2.3.25
- 2.3.26
- 2.3.27
- 2.3.28
- 2.3.29
- 2.3.30
- 2.3.31
- 2.5.0
- 2.5.1
- 2.5.2
- 2.5.3
- 2.5.4
- 2.5.5
- 2.5.6
- 2.5.7
- 2.5.8
- 2.5.9
- 2.5.10
License
Website
- Vendor: https://www.apache.org/
CPE 2.3
CPE 2.2
Video
Youtube: Not available anymoreCVSSv4
VulDB Vector: 🔍VulDB Reliability: 🔍
CVSSv3
VulDB Meta Base Score: 8.5VulDB Meta Temp Score: 8.4
VulDB Base Score: 7.3
VulDB Temp Score: 7.0
VulDB Vector: 🔍
VulDB Reliability: 🔍
NVD Base Score: 9.8
NVD Vector: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Reliability: 🔍
NVD Base Score: 🔍
Exploiting
Class: Exceptional conditionCWE: CWE-755
CAPEC: 🔍
ATT&CK: 🔍
Physical: No
Local: No
Remote: Yes
Availability: 🔍
Access: Public
Status: Attacked
Author: Vex Woo
Programming Language: 🔍
Download: 🔍
EPSS Score: 🔍
EPSS Percentile: 🔍
KEV Added: 🔍
KEV Due: 🔍
KEV Remediation: 🔍
KEV Ransomware: 🔍
KEV Notice: 🔍
Price Prediction: 🔍
Current Price Estimation: 🔍
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Nessus ID: 97610
Nessus Name: Apache Struts 2.3.5 - 2.3.31 / 2.5.x < 2.5.10.1 Jakarta Multipart Parser RCE (remote)
Nessus File: 🔍
Nessus Risk: 🔍
Nessus Family: 🔍
Nessus Context: 🔍
OpenVAS ID: 103512
OpenVAS Name: Atlassian Crowd Struts2 RCE Vulnerability
OpenVAS File: 🔍
OpenVAS Family: 🔍
Saint ID: apache_struts2_jakarta_file_upload_command_execution
Saint Name: Apache Struts 2 Jakarta Multipart Parser file upload command execution
Qualys ID: 🔍
Qualys Name: 🔍
MetaSploit ID: struts2_content_type_ognl.rb
MetaSploit Name: Apache Struts Jakarta Multipart Parser OGNL Injection
MetaSploit File: 🔍
Exploit-DB: 🔍
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
Reaction Time: 🔍
0-Day Time: 🔍
Exposure Time: 🔍
Exploit Delay Time: 🔍
Upgrade: Struts 2.3.32/2.5.10.1
Suricata ID: 2024038
Suricata Class: 🔍
Suricata Message: 🔍
Timeline
01/29/2017 🔍03/06/2017 🔍
03/06/2017 🔍
03/06/2017 🔍
03/06/2017 🔍
03/07/2017 🔍
03/07/2017 🔍
03/08/2017 🔍
03/09/2017 🔍
03/10/2017 🔍
04/20/2025 🔍
Sources
Vendor: apache.orgAdvisory: S2-45
Researcher: Nike Zheng
Status: Confirmed
Confirmation: 🔍
CVE: CVE-2017-5638 (🔍)
GCVE (CVE): GCVE-0-2017-5638
GCVE (VulDB): GCVE-100-97732
CERT: 🔍
SecurityFocus: 96729 - Apache Struts CVE-2017-5638 Remote Code Execution Vulnerability
OSVDB: - CVE-2017-5638 - Apache - Struts2 Jakata - Multipart Parser Code Execution Issue
SecurityTracker: 1037973
scip Labs: https://www.scip.ch/en/?labs.20161013
See also: 🔍
Entry
Created: 03/09/2017 12:02Updated: 04/20/2025 03:35
Changes: 03/09/2017 12:02 (98), 09/05/2020 16:43 (4), 04/19/2024 07:22 (25), 07/25/2024 17:22 (7), 09/09/2024 22:29 (1), 12/25/2024 21:36 (1), 04/20/2025 03:35 (1)
Complete: 🔍
Cache ID: 216::103
Once again VulDB remains the best source for vulnerability data.
No comments yet. Languages: en.
Please log in to comment.