CVE-2017-9791

CRITICALNVD 9.89.8
EchelonGraph scoreHIGH confidence

Score elevated to 9.8 because this CVE is listed on the CISA Known Exploited Vulnerabilities catalog (added 2022-02-10), 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, ghsa, nvd
Trending — 4 sources updated this weekExploited 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: 99%CVSS: 9.8Exploit: NoneExposed: 0

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

The Struts 1 plugin in Apache Struts 2.1.x and 2.3.x might allow remote code execution via a malicious field value passed in a raw message to the ActionMessage.

CVSS v3
9.8
EG Score
9.8(high)
EPSS
99.9%
KEV
⚠ Exploited

Published

July 10, 2017

Last Modified

April 21, 2026

Advisory Details (5)

Auto-updated Apr 30, 2026
🔬 Proof of concept available. No patch confirmed yet.
generic

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

http://struts.apache.org/docs/s2-048.html
generic🟡 PoC Available

Apache Struts 2 - Struts 1 Plugin Showcase OGNL Code Execution (Metasploit) - Multiple remote Exploit

https://www.exploit-db.com/exploits/44643/
generic🟡 PoC Available

Apache Struts 2.3.x Showcase - Remote Code Execution - Multiple webapps Exploit

https://www.exploit-db.com/exploits/42324/

Patch Availability(1)

Vendor / EcosystemFixed in / PatchReleasedSource
mavenorg.apache.struts:struts2-struts1-pluginghsa

Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.

Affected Packages

(1 across 1 ecosystem)
Maven(1)
PackageVulnerable rangeFixed inDependents
org.apache.struts:struts2-struts1-plugin2.0.11 ... 2.3.8 (55 versions)

Weakness Classification(1)

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

Data Freshness Timeline

(refreshed 94× in last 7d / 392× 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 598 total refreshes for this CVE.

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

Publicly available exploits

(6 references)

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

  • Exploit-DBEDB-44643✓ verified
    First seen May 17, 2018

    Apache Struts 2 - Struts 1 Plugin Showcase OGNL Code Execution (Metasploit)

    Open source ↗
  • Exploit-DBEDB-42324✓ verified
    First seen Jul 7, 2017

    Apache Struts 2.3.x Showcase - Remote Code Execution

    Open source ↗
  • GitHub PoCdragoneeg/Struts2-048
    First seen Jul 7, 2017

    CVE-2017-9791

    Open source ↗
  • GitHub PoCIanSmith123/s2-048
    First seen Jul 7, 2017

    Apache struts struts 2 048, CVE-2017-9791.

    Open source ↗
  • Metasploitexploit/multi/http/struts2_code_exec_showcase✓ verified
    First seen Jul 7, 2017

    Apache Struts 2 Struts 1 Plugin Showcase OGNL Code Execution

    Open source ↗
  • Nucleihttp/cves/2017/CVE-2017-9791.yaml
    First seen Jan 1, 2017

    Apache Struts2 S2-053 - Remote Code Execution

    Open source ↗

Frequently asked(6)

What is CVE-2017-9791?
CVE-2017-9791 is a critical vulnerability published on July 10, 2017. The Struts 1 plugin in Apache Struts 2.1.x and 2.3.x might allow remote code execution via a malicious field value passed in a raw message to the ActionMessage.
When was CVE-2017-9791 disclosed?
CVE-2017-9791 was first published in the National Vulnerability Database on July 10, 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-9791 actively exploited?
Yes. CISA added CVE-2017-9791 to the Known Exploited Vulnerabilities catalog on February 10, 2022, affecting Apache Struts 1. KEV listing indicates confirmed exploitation in the wild; this CVE warrants immediate patching attention.
What is the CVSS score of CVE-2017-9791?
CVE-2017-9791 has a CVSS v3 base score of 9.8 (NVD).
Which products are affected by CVE-2017-9791?
CVE-2017-9791 affects Apache Struts 1. 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-9791?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2017-9791, 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-9791

Explore →

Is Your Infrastructure Affected by CVE-2017-9791?

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