WaratekVRT Sign in

CVE-2017-5638 Apache Struts

Affected softwareApache Struts
Severity9.8 Critical CVSS 3.1 3 scores
Fixed in2.3.32, 2.5.10.1
WeaknessImproper input validation (CWE-20)
Published11 Mar 2017
Updated17 Jun 2026

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.

CWE-755

Exploitation status

Exploited

Confirmed real-world exploitation.

  • CISA KEV listed Confirmed exploitation in the wild. Added 2021-11-03 · remediation due 2022-05-03 · ransomware use: known
  • VulnCheck KEV listed Exploitation reported in the wild. 48 citations · honeypot sightings · 70 exploits · earliest 2017-03-11.
  • CISA Vulnrichment exploitation: active CISA records active exploitation. Automatable: yes, technical impact: total.
  • Indexed PoC 77 indexed Published artifacts you can open, in Exploit-DB, GitHub PoC, Metasploit, Nuclei; first seen 2017-03-07.
  • EPSS 99.9% chance in 30 days A model's forecast, not a report of exploitation. Higher than 99.9% of all scored CVEs.

VulnCheck KEV

Exploitation evidence from VulnCheck Known Exploited Vulnerabilities (VulnCheck KEV), used under VulnCheck's community terms. View CVE-2017-5638 in VulnCheck (free account), which lists 43 more citations and 65 more exploit references not shown here.

EvidenceSourceDetailDate
Honeypot sighting Shadowserver honeypots Exploitation attempts seen on 554 days 2023-11-18 to 2026-11-12
Reported exploitation cve.org /CVERecord?id=CVE-2017-5638 2017-03-11
Reported exploitation f5.com /labs/articles/threat-intelligence/from-ddos-to-server-ransomware-apache-struts-2-cve-2017-5638-campaign-25922 2017-03-27
Reported exploitation isc.sans.edu /diary/Java+Struts2+Vulnerability+Used+To+Install+Cerber+Crypto+Ransomware/22264 2017-04-06
Reported exploitation trendmicro.com /vinfo/us/security/news/vulnerabilities-and-exploits/2017-notable-vulnerabilities-and-exploits 2017-12-06
Reported exploitation cisa.gov /news-events/ics-alerts/ics-alert-14-281-01 2018-08-23
Exploit reference VulnCheck XDB a920eeb5ee6a Exploit type: initial-access 2017-03-07
Exploit reference VulnCheck XDB 92baced400a4 Exploit type: initial-access 2017-03-10
Exploit reference VulnCheck XDB b5c1ab2d5bc5 Exploit type: initial-access 2017-03-10
Exploit reference VulnCheck XDB df60c287f1cd Exploit type: initial-access 2017-03-10
Exploit reference VulnCheck XDB 38dd7dd03007 Exploit type: initial-access 2017-03-11
IndexArtifactStarsFirst seen
GitHub PoC An exploit for Apache Struts CVE-2017-5638 445 2017-03-12
Nuclei Apache Struts 2 - Remote Command Execution
Exploit-DB Apache Struts 2.3.5 < 2.3.31 / 2.5 < 2.5.10 - 'Jakarta' Multipart Parser OGNL Injection (Metasploit) 2017-03-15
Metasploit Apache Struts Jakarta Multipart Parser OGNL Injection (excellent rank)
GitHub PoC Struts2 S2-045(CVE-2017-5638)Exp with GUI 61 2017-03-07
Exploit-DB Apache Struts 2.3.5 < 2.3.31 / 2.5 < 2.5.10 - Remote Code Execution 2017-03-07
GitHub PoC Demo Application and Exploit 34 2017-03-10
GitHub PoC S2-045 漏洞 POC-TOOLS CVE-2017-5638 25 2017-03-09
GitHub PoC Struts2 S2-045(CVE-2017-5638)Vulnerability environment - http://www.mottoin.com/97954.html 23 2017-03-07
GitHub PoC Example PoC Code for CVE-2017-5638 | Apache Struts Exploit 22 2017-03-10

Waratek protection

Protected by Waratek

Waratek has a rule that blocks attacks on this vulnerability.

  • Protection full
  • Action available patch rule
  • Review human ARMR file
  • Record active
Decided by An ARMR patch file on disk for this CVE
Finding CVE has an ARMR patch rule that provides mitigation

ARMR rule files

1 file

The rule files Waratek ships for this CVE. Some CVEs need more than one, for example one per affected library or one per ARMR version.

CVE-2017-5638.armr patch rule, ARMR 2.6 added 2019-11-26 updated 2026-03-04

How to mitigate CVE-2017-5638

Upgrade Apache Struts to a release that fixes it: 2.3.32 or 2.5.10.1. Until you can, Waratek RASP blocks exploitation with a rule written for this CVE. It runs inside the Java application, with no code changes.

Waratek RASP Runtime protection for Java applications

CVSS

9.8 CRITICAL v3.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H 3 metrics

We show the highest score from the newest CVSS version. Scores from different versions can't be compared, and the first score listed is sometimes a 0.0 placeholder.

VersionScoreBandVectorAssignerType
CVSS 3.1 9.8 CRITICAL CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H NVD Primary published
CVSS 3.1 9.8 CRITICAL CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H CISA-ADP Secondary
CVSS 2.0 10.0 none AV:N/AC:L/Au:N/C:C/I:C/A:C NVD Primary

Affected software and releases

Oracle advisories

AdvisoryTypeQuarterProducts Oracle names in its risk matrix
Oracle Critical Patch Update July 2017 ↗ CPU 2017-Q3 Oracle Fusion Middleware / Sample apps (Struts 2) (10.3.6.0, 12.1.3.0, 12.2.1.1, 12.2.1.2)
Oracle Critical Patch Update April 2017 ↗ CPU 2017-Q2 Oracle Communications Applications / Security (Struts 2) (12.2)
Oracle Financial Services Applications / Core (Struts 2) (1.5.0, 1.5.1, 8.0.1, 8.0.2, 8.0.3, 8.0.4)
Oracle Financial Services Applications / Core (Struts 2) (12.0.1, 12.0.2, 12.0.3, 12.1.0)
Oracle Financial Services Applications / Core (Struts 2) (6.0.0, 6.1.0, 6.1.1, 8.0.1, 8.0.2, 8.0.3, 8.0.4)
Oracle Financial Services Applications / Core (Struts 2) (6.0.0, 6.1.0, 6.1.1, 8.0.1, 8.0.2, 8.0.3, 8.0.4)
Oracle Financial Services Applications / Core (Struts 2) (6.0.0, 6.1.0, 6.1.1, 8.0.1, 8.0.2, 8.0.3, 8.0.4)
Oracle Financial Services Applications / Core (Struts 2) (6.1.1, 8.0.1, 8.0.2, 8.0.3, 8.0.4)
Oracle Financial Services Applications / Core (Struts 2) (6.1.2, 6.1.3, 8.0.2, 8.0.3)
Oracle Financial Services Applications / Core (Struts 2) (6.1.2, 6.1.3, 8.0.2, 8.0.3)
Oracle Financial Services Applications / Core (Struts 2) (7.3.3, 7.3.4, 7.3.5)
Oracle Financial Services Applications / Core (Struts 2) (8.0.0 to 8.0.3)
Oracle Financial Services Applications / Core (Struts 2) (8.0.0 to 8.0.4)
Oracle Financial Services Applications / Core (Struts 2) (8.0.0 to 8.0.4)
Oracle Financial Services Applications / Core (Struts 2) (8.0.0 to 8.0.4)
Oracle Financial Services Applications / Core (Struts 2) (8.0.0 to 8.0.4)
Oracle Financial Services Applications / Core (Struts 2) (8.0.0, 8.0.1, 8.0.2)
Oracle Financial Services Applications / Core (Struts 2) (8.0.1, 8.0.2, 8.0.3, 8.0.4)
Oracle Financial Services Applications / Core (Struts 2) (8.0.1, 8.0.2, 8.0.3, 8.0.4)
Oracle Financial Services Applications / Core (Struts 2) (8.0.1, 8.0.2, 8.0.3, 8.0.4)
Oracle Financial Services Applications / Core (Struts 2) (8.0.1, 8.0.2, 8.0.4)
Oracle Fusion Middleware / Samples (Struts 2) (10.3.6.0, 12.1.3.0, 12.2.1.0, 12.2.1.1, 12.2.1.2)
Oracle Fusion Middleware / Third Party Tools (Struts 2) (11.1.1.8.0, 12.2.1.0.0, 12.2.1.1.0, 12.2.1.2.0)
Oracle MySQL / Monitoring: General (Struts 2) (3.1.6.8003 and earlier, 3.2.1182 and earlier, 3.3.2.1162 and earlier,)
Oracle Retail Applications / Internal Operations (Struts 2) (10.0.1, 10.5.0, 10.6.0, 10.7.0, 10.8.0, 10.8.1)
Oracle Siebel CRM / Security (Struts 2) (6.1, 6.2, 7.0, 7.1)

Oracle components and versions

FamilyComponentVersions, as Oracle lists themRead as
Oracle Communications Applications Security (Struts 2) 12.2 12.2
Oracle Financial Services Applications Core (Struts 2) 1.5.0, 1.5.1, 8.0.1, 8.0.2, 8.0.3, 8.0.4 1.5.0 · 1.5.1 · 6.0.0 · 6.1.0 · 6.1.1 · 6.1.2 · 6.1.3 · 7.3.3 · 7.3.4 · 7.3.5 · 8.0.0 · 8.0.0.8.0.3 · 8.0.0.8.0.4 · 8.0.1 · 8.0.2 · 8.0.3 · 8.0.4 · 12.0.1 · 12.0.2 · 12.0.3 · 12.1.0
Oracle Fusion Middleware Sample apps (Struts 2) 10.3.6.0, 12.1.3.0, 12.2.1.1, 12.2.1.2 10.3.6.0 · 12.1.3.0 · 12.2.1.1 · 12.2.1.2
Oracle Fusion Middleware Samples (Struts 2) 10.3.6.0, 12.1.3.0, 12.2.1.0, 12.2.1.1, 12.2.1.2 10.3.6.0 · 12.1.3.0 · 12.2.1.0 · 12.2.1.1 · 12.2.1.2
Oracle Fusion Middleware Third Party Tools (Struts 2) 11.1.1.8.0, 12.2.1.0.0, 12.2.1.1.0, 12.2.1.2.0 11.1.1.8.0 · 12.2.1.0.0 · 12.2.1.1.0 · 12.2.1.2.0
Oracle MySQL Monitoring: General (Struts 2) 3.1.6.8003 and earlier, 3.2.1182 and earlier, 3.3.2.1162 and earlier,
Oracle Retail Applications Internal Operations (Struts 2) 10.0.1, 10.5.0, 10.6.0, 10.7.0, 10.8.0, 10.8.1 10.0.1 · 10.5.0 · 10.6.0 · 10.7.0 · 10.8.0 · 10.8.1
Oracle Siebel CRM Security (Struts 2) 6.1, 6.2, 7.0, 7.1 6.1 · 6.2 · 7.0 · 7.1

Maven packages

Affected and fixed versions, from OSV.dev
PackageIntroducedFixedLast affected
org.apache.struts:struts2-core 2.3.0 2.3.32 unbounded
org.apache.struts:struts2-core 2.5.0 2.5.10.1 unbounded

Products and versions

10 products, 23 version entries
SourceVendorProductSchemeAffected versions
nvd apache struts generic ≥ 2.2.3 and < 2.3.32 · ≥ 2.5.0 and < 2.5.10.1
nvd arubanetworks clearpass policy manager generic < 6.6.5
nvd hp server automation generic 9.1.0 · 10.0.0 · 10.1.0 · 10.2.0 · 10.5.0
nvd ibm storwize v3500 firmware generic 7.7.1.6 · 7.8.1.0
nvd ibm storwize v5000 firmware generic 7.7.1.6 · 7.8.1.0
nvd ibm storwize v7000 firmware generic 7.7.1.6 · 7.8.1.0
nvd lenovo storage v5030 firmware generic 7.7.1.6 · 7.8.1.0
nvd netapp oncommand balance generic any version
nvd oracle weblogic server generic 10.3.6.0.0 · 12.1.3.0.0 · 12.2.1.1.0 · 12.2.1.2.0
osv org.apache.struts struts2-core generic ≥ 2.3.0 and < 2.3.32 · ≥ 2.5.0 and < 2.5.10.1

References

URLTags
https://github.com/rapid7/metasploit-framework/issues/8064 WEB
https://github.com/apache/struts/commit/b06dd50af2a3319dd896bf5c2f4972d2b772cf2b WEB
https://github.com/apache/struts/commit/352306493971e7d5a756d61780d57a76eb1f519a WEB
https://lists.apache.org/thread.html/r6d03e45b81eab03580cf7f8bb51cb3e9a1b10a2cc0c6a2d3cc92ed0c@%3Cannounce.apache.org%3E WEB
https://lists.apache.org/thread.html/r90890afea72a9571d666820b2fe5942a0a5f86be406fa31da3dd0922%40%3Cannounce.apache.org%3E WEB
https://lists.apache.org/thread.html/r90890afea72a9571d666820b2fe5942a0a5f86be406fa31da3dd0922@%3Cannounce.apache.org%3E WEB
https://nmap.org/nsedoc/scripts/http-vuln-cve2017-5638.html WEB
https://packetstormsecurity.com/files/141494/S2-45-poc.py.txt WEB
https://security.netapp.com/advisory/ntap-20170310-0001 WEB
https://struts.apache.org/docs/s2-045.html WEB

Timeline

Published2017-03-11By the CVE Program.
VulnCheck KEV: earliest evidence2017-03-11Date of the oldest evidence of exploitation in VulnCheck KEV's record. VulnCheck does not publish the date it listed the CVE.
ARMR remediation created2019-11-26Earliest commit adding this CVE's ARMR patch or security rule.
Added to CISA KEV2021-11-03Listed in CISA's Known Exploited Vulnerabilities catalog.
ARMR remediation last updated2026-03-04Most recent commit touching this CVE's ARMR patch or security rule.
Last VRT activity2026-03-04Most recent commit touching this CVE's classification, patch or rule file.
NVD record modified2026-06-17NVD's own last-modified date for this record.
VulnCheck KEV: latest evidence2026-11-12Date of the newest report, exploit reference or honeypot sighting in VulnCheck KEV's record.