CVE-2017-5638

CRITICALNVD 9.89.8
EchelonGraph scoreMEDIUM confidence

Score elevated to 9.8 because this CVE is listed on the CISA Known Exploited Vulnerabilities catalog (added 2021-11-03), indicating real-world exploitation has been confirmed by US federal agencies. NVD baseline CVSS 9.8 retained for reference. Confidence: HIGH.

Triggered by: CISA KEV (actively exploited)
Sources: cisa_kev, epss, nvd
Exploited in the wild
9.8
EchelonGraph verdictPatch nowTreat as an emergency — this is being exploited.
  • Actively exploited in the wild (CISA-KEV)
CISA-KEV: ExploitedEPSS: 100%CVSS: 9.8Exploit: NoneExposed: 0

No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.

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.

CVSS v3
9.8
EG Score
9.8(medium)
EPSS
100.0%
KEV
⚠ Exploited

Published

March 11, 2017

Last Modified

April 21, 2026

Advisory Details (6)

Auto-updated Apr 29, 2026
⚠️ Active exploitation confirmed. No patch confirmed yet.
generic

S2-046 - Apache Struts 2 Wiki - Apache Software Foundation

https://cwiki.apache.org/confluence/display/WW/S2-046
generic

S2-045 - Apache Struts 2 Wiki - Apache Software Foundation

https://cwiki.apache.org/confluence/display/WW/S2-045
generic

Critical vulnerability under “massive” attack imperils high-impact sites [Updated] - Ars Technica

https://arstechnica.com/security/2017/03/critical-vulnerability-under-massive-attack-imperils-high-impact-sites/
generic

Apache Struts Vulnerability Exposes Sites to Attack

http://www.eweek.com/security/apache-struts-vulnerability-under-attack.html
generic🔴 Active Exploitation

Apache Struts 2 Vulnerability Leads to RCE | Trend Micro (US)

http://blog.trendmicro.com/trendlabs-security-intelligence/cve-2017-5638-apache-struts-vulnerability-remote-code-execution/
generic🔴 Active Exploitation

Content-Type: Malicious - New Apache Struts2 0-day Under Attack

http://blog.talosintelligence.com/2017/03/apache-0-day-exploited.html

Affected Packages

(1 across 1 ecosystem)
Maven(1)
PackageVulnerable rangeFixed inDependents
org.apache.struts:struts2-core2.5 ... 2.5.8 (6 versions)2.5.10.1

Weakness Classification(1)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

Data Freshness Timeline

(refreshed 43× in last 7d / 187× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

Showing the most recent 100 of 294 total refreshes for this CVE.

  1. 2026-07-11 18:29 UTCEG score recompute
  2. 2026-07-11 14:22 UTCEG score recompute
  3. 2026-07-11 10:14 UTCEG score recompute
  4. 2026-07-11 06:06 UTCEG score recompute
  5. 2026-07-11 01:56 UTCEG score recompute
  6. 2026-07-10 21:49 UTCEG score recompute
  7. 2026-07-10 17:52 UTCCISA KEV update
  8. 2026-07-10 17:42 UTCEG score recompute
  9. 2026-07-10 13:35 UTCEG score recompute
  10. 2026-07-10 09:26 UTCEG score recompute
  11. 2026-07-10 05:17 UTCEG score recompute
  12. 2026-07-10 01:05 UTCEG score recompute
  13. 2026-07-09 20:57 UTCEG score recompute
  14. 2026-07-09 16:49 UTCEG score recompute
  15. 2026-07-09 12:42 UTCEG score recompute
  16. 2026-07-09 08:34 UTCEG score recompute
  17. 2026-07-09 04:26 UTCEG score recompute
  18. 2026-07-09 00:18 UTCEG score recompute
  19. 2026-07-08 20:11 UTCEG score recompute
  20. 2026-07-08 16:01 UTCEG score recompute
  21. 2026-07-08 11:53 UTCEG score recompute
  22. 2026-07-08 07:46 UTCEG score recompute
  23. 2026-07-08 03:38 UTCEG score recompute
  24. 2026-07-07 23:30 UTCEG score recompute
  25. 2026-07-07 19:23 UTCEG score recompute
Show 75 more
  1. 2026-07-07 19:01 UTCCISA KEV update
  2. 2026-07-07 17:16 UTCCISA KEV update
  3. 2026-07-07 15:13 UTCEG score recompute
  4. 2026-07-07 10:59 UTCEG score recompute
  5. 2026-07-07 06:52 UTCEG score recompute
  6. 2026-07-07 02:44 UTCEG score recompute
  7. 2026-07-06 22:36 UTCEG score recompute
  8. 2026-07-06 18:29 UTCEG score recompute
  9. 2026-07-06 14:19 UTCEG score recompute
  10. 2026-07-06 10:11 UTCEG score recompute
  11. 2026-07-06 06:02 UTCEG score recompute
  12. 2026-07-06 01:54 UTCEG score recompute
  13. 2026-07-05 21:47 UTCEG score recompute
  14. 2026-07-05 17:40 UTCEG score recompute
  15. 2026-07-05 13:32 UTCEG score recompute
  16. 2026-07-05 09:25 UTCEG score recompute
  17. 2026-07-05 05:17 UTCEG score recompute
  18. 2026-07-05 01:10 UTCEG score recompute
  19. 2026-07-04 21:02 UTCEG score recompute
  20. 2026-07-04 16:54 UTCEG score recompute
  21. 2026-07-04 12:46 UTCEG score recompute
  22. 2026-07-04 08:38 UTCEG score recompute
  23. 2026-07-04 04:29 UTCEG score recompute
  24. 2026-07-04 00:18 UTCEG score recompute
  25. 2026-07-03 20:11 UTCEG score recompute
  26. 2026-07-03 16:04 UTCEG score recompute
  27. 2026-07-03 11:57 UTCEG score recompute
  28. 2026-07-03 07:49 UTCEG score recompute
  29. 2026-07-03 03:40 UTCEG score recompute
  30. 2026-07-02 23:32 UTCEG score recompute
  31. 2026-07-02 19:24 UTCEG score recompute
  32. 2026-07-02 15:17 UTCEG score recompute
  33. 2026-07-02 11:09 UTCEG score recompute
  34. 2026-07-02 07:02 UTCEG score recompute
  35. 2026-07-02 02:54 UTCEG score recompute
  36. 2026-07-01 22:47 UTCEG score recompute
  37. 2026-07-01 19:16 UTCCISA KEV update
  38. 2026-07-01 18:40 UTCEG score recompute
  39. 2026-07-01 14:32 UTCEG score recompute
  40. 2026-07-01 10:25 UTCEG score recompute
  41. 2026-07-01 06:18 UTCEG score recompute
  42. 2026-07-01 02:11 UTCEG score recompute
  43. 2026-06-30 22:03 UTCEG score recompute
  44. 2026-06-30 17:55 UTCEG score recompute
  45. 2026-06-30 13:47 UTCEG score recompute
  46. 2026-06-30 09:40 UTCEG score recompute
  47. 2026-06-30 05:32 UTCEG score recompute
  48. 2026-06-30 01:25 UTCEG score recompute
  49. 2026-06-29 21:18 UTCEG score recompute
  50. 2026-06-29 19:12 UTCCISA KEV update
  51. 2026-06-29 17:10 UTCEG score recompute
  52. 2026-06-29 13:02 UTCEG score recompute
  53. 2026-06-29 08:55 UTCEG score recompute
  54. 2026-06-29 04:47 UTCEG score recompute
  55. 2026-06-29 00:39 UTCEG score recompute
  56. 2026-06-28 20:31 UTCEG score recompute
  57. 2026-06-28 16:23 UTCEG score recompute
  58. 2026-06-28 12:16 UTCEG score recompute
  59. 2026-06-28 08:07 UTCEG score recompute
  60. 2026-06-28 04:00 UTCEG score recompute
  61. 2026-06-27 23:53 UTCEG score recompute
  62. 2026-06-27 19:45 UTCEG score recompute
  63. 2026-06-27 15:35 UTCEG score recompute
  64. 2026-06-27 11:28 UTCEG score recompute
  65. 2026-06-27 07:20 UTCEG score recompute
  66. 2026-06-27 03:13 UTCEG score recompute
  67. 2026-06-26 23:05 UTCEG score recompute
  68. 2026-06-26 18:58 UTCEG score recompute
  69. 2026-06-26 14:51 UTCEG score recompute
  70. 2026-06-26 10:44 UTCEG score recompute
  71. 2026-06-26 04:16 UTCEG score recompute
  72. 2026-06-26 00:08 UTCEG score recompute
  73. 2026-06-25 20:01 UTCEG score recompute
  74. 2026-06-25 19:15 UTCCISA KEV update
  75. 2026-06-25 15:52 UTCEG score recompute

Publicly available exploits

(10 references)

Working exploit code is in the public domain (1 Metasploit module) (7 GitHub PoCs) (2 Exploit-DB entries). Defenders should treat patch urgency accordingly — public PoCs typically lead to mass-exploitation within 24-72 hours.

  • GitHub PoCwin3zz/CVE-2017-5638
    First seen May 13, 2018

    Apache Struts 2.3.5 < 2.3.31 / 2.5 < 2.5.10 - Remote Code Execution - Shell Script

    Open source ↗
  • GitHub PoCjas502n/st2-046-poc
    First seen Mar 21, 2017

    st2-046-poc CVE-2017-5638

    Open source ↗
  • Exploit-DBEDB-41614✓ verified
    First seen Mar 15, 2017

    Apache Struts 2.3.5 < 2.3.31 / 2.5 < 2.5.10 - 'Jakarta' Multipart Parser OGNL Injection (Metasploit)

    Open source ↗
  • GitHub PoCjrrdev/cve-2017-5638
    First seen Mar 15, 2017

    cve-2017-5638 Vulnerable site sample

    Open source ↗
  • GitHub PoCret2jazzy/Struts-Apache-ExploitPack
    First seen Mar 12, 2017

    These are just some script which you can use to detect and exploit the Apache Struts Vulnerability (CVE-2017-5638)

    Open source ↗
  • GitHub PoCmazen160/struts-pwn
    First seen Mar 12, 2017

    An exploit for Apache Struts CVE-2017-5638

    Open source ↗
  • GitHub PoCimmunio/apache-struts2-CVE-2017-5638
    First seen Mar 10, 2017

    Demo Application and Exploit

    Open source ↗
  • GitHub PoCxsscx/cve-2017-5638
    First seen Mar 10, 2017

    Example PoC Code for CVE-2017-5638 | Apache Struts Exploit

    Open source ↗
  • Metasploitexploit/multi/http/struts2_content_type_ognl✓ verified
    First seen Mar 10, 2017

    OGNL injection via Content-Type header — the exploit chain used in the Equifax breach.

    Open source ↗
  • Exploit-DBEDB-41570✓ verified
    First seen Mar 9, 2017

    Standalone Python exploit, weaponised within 48h of patch release.

    Open source ↗

Past incidents using this CVE

(1)

This CVE was central to one or more publicly-documented breaches. Each card links to authoritative reporting at the time of the incident.

  • Equifax breach (Apache Struts)Sep 2017147M+ affected

    Apache Struts OGNL injection vulnerability — Equifax failed to patch for 2 months, leading to one of the largest PII breaches in history. 147M US consumers exposed.

    Source: CSO Online

Frequently asked(6)

What is CVE-2017-5638?
CVE-2017-5638 is a critical vulnerability published on March 11, 2017. 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…
When was CVE-2017-5638 disclosed?
CVE-2017-5638 was first published in the National Vulnerability Database on March 11, 2017, with the most recent update on April 21, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2017-5638 actively exploited?
Yes. CISA added CVE-2017-5638 to the Known Exploited Vulnerabilities catalog on November 3, 2021, affecting Apache Struts. KEV listing indicates confirmed exploitation in the wild; this CVE warrants immediate patching attention.
What is the CVSS score of CVE-2017-5638?
CVE-2017-5638 has a CVSS v3 base score of 9.8 (NVD).
Which products are affected by CVE-2017-5638?
CVE-2017-5638 affects Apache Struts. The full affected-products list, including version ranges and fixed versions, is shown in the Affected Packages section of this page.
How do I remediate CVE-2017-5638?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2017-5638, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2017-5638

Explore →

Is Your Infrastructure Affected by CVE-2017-5638?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.