In Apache Struts 2.0.0 through 2.3.33 and 2.5 through 2.5.10.1, using an unintentional expression in a Freemarker tag instead of string literals can lead to a RCE attack.
CVE-2017-12611
Score elevated to 9.8 because EPSS predicts 94% probability of exploitation within the next 30 days (top 0.1% of all CVEs). NVD baseline CVSS 9.8 retained for reference. Confidence: see factors.
- High exploitation likelihood — EPSS 88%
No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.
- CVSS v3
- 9.8
- EG Score
- 9.8(high)
- EPSS
- 99.7%
- KEV
- Not listed
Published
September 20, 2017
Last Modified
May 13, 2026
Advisory Details (2)
Auto-updated May 17, 2026S2-053 - Apache Struts 2 Wiki - Apache Software Foundation
https://struts.apache.org/docs/s2-053.htmlAffected Packages
(1 across 1 ecosystem)
Maven(1)
| Package | Vulnerable range | Fixed in | Dependents |
|---|---|---|---|
| org.apache.struts:struts2-core | 2.5 ... 2.5.8 (7 versions) | 2.5.11 | — |
Data Freshness Timeline
(refreshed 3× in last 7d / 12× 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.
- 2026-07-08 15:10 UTCEPSS rescore
- 2026-07-08 04:57 UTCOSV refresh
- 2026-07-07 13:42 UTCEPSS rescore
- 2026-06-28 04:53 UTCEPSS rescore
- 2026-06-24 14:02 UTCEPSS rescore
- 2026-06-23 21:30 UTCEPSS rescore
- 2026-06-21 14:54 UTCEPSS rescore
- 2026-06-21 14:54 UTCEPSS rescore
- 2026-06-19 16:55 UTCOSV refresh
- 2026-06-18 17:50 UTCEPSS rescore
- 2026-06-17 17:50 UTCEPSS rescore
- 2026-06-15 17:45 UTCEPSS rescore
- 2026-06-06 13:45 UTCEPSS rescore
- 2026-06-06 13:45 UTCEPSS rescore
- 2026-06-05 22:44 UTCEPSS rescore
- 2026-05-30 22:53 UTCOSV refresh
- 2026-05-28 13:42 UTCEPSS rescore
- 2026-05-28 13:42 UTCEPSS rescore
- 2026-05-22 21:15 UTCEPSS rescore
- 2026-05-22 21:15 UTCEPSS rescore
- 2026-05-22 21:15 UTCEPSS rescore
- 2026-05-20 09:07 UTCEG score recompute
- 2026-05-20 05:21 UTCEG score recompute
- 2026-05-20 01:37 UTCEG score recompute
- 2026-05-19 21:53 UTCEG score recompute
Show 8 moreShow fewer
- 2026-05-19 18:09 UTCEG score recompute
- 2026-05-19 14:25 UTCEG score recompute
- 2026-05-19 10:41 UTCEG score recompute
- 2026-05-19 06:56 UTCEG score recompute
- 2026-05-19 03:12 UTCEG score recompute
- 2026-05-18 23:25 UTCEG score recompute
- 2026-05-18 21:30 UTCEPSS rescore
- 2026-05-18 21:30 UTCEPSS rescore
Publicly available exploits
(3 references)Working exploit code is in the public domain (1 GitHub PoC) (1 Exploit-DB entry). Defenders should treat patch urgency accordingly — public PoCs typically lead to mass-exploitation within 24-72 hours.
- Exploit-DBEDB-44556✓ verifiedFirst seen Sep 8, 2017
Apache Struts 2.0.1 < 2.3.33 / 2.5 < 2.5.10 - Arbitrary Code Execution
Open source ↗ - GitHub PoCbrianwrf/S2-053-CVE-2017-12611First seen Sep 8, 2017
A simple script for exploit RCE for Struts 2 S2-053(CVE-2017-12611)
Open source ↗ - Nucleihttp/cves/2017/CVE-2017-12611.yamlFirst seen Jan 1, 2017
Apache Struts2 S2-053 - Remote Code Execution
Open source ↗
Frequently asked(5)
What is CVE-2017-12611?
When was CVE-2017-12611 disclosed?
Is CVE-2017-12611 actively exploited?
What is the CVSS score of CVE-2017-12611?
How do I remediate CVE-2017-12611?
Dependency Blast Radius
See which npm, PyPI, Go, and Maven packages are affected by CVE-2017-12611
Is Your Infrastructure Affected by CVE-2017-12611?
EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.