Forced OGNL evaluation, when evaluated on raw user input in tag attributes, may lead to remote code execution. Affected software : Apache Struts 2.0.0 - Struts 2.5.25.
CVE-2020-17530
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.
- Actively exploited in the wild (CISA-KEV)
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.9%
- KEV
- ⚠ Exploited
Published
December 11, 2020
Last Modified
October 27, 2025
Advisory Details (5)
Auto-updated Jun 1, 2026S2-061 - Apache Struts 2 Wiki - Apache Software Foundation
https://cwiki.apache.org/confluence/display/WW/S2-061oss-security - CVE-2021-31805: Apache Struts: Forced OGNL evaluation, when evaluated on raw not validated user input in tag attributes, may lead to RCE.
http://www.openwall.com/lists/oss-security/2022/04/12/6Packet Storm
http://packetstormsecurity.com/files/160721/Apache-Struts-2-Forced-Multi-OGNL-Evaluation.htmlJVN#43969166: Apache Struts 2 vulnerable to remote code execution (S2-061)
http://jvn.jp/en/jp/JVN43969166/index.htmlAffected Packages
(1 across 1 ecosystem)
Maven(1)
| Package | Vulnerable range | Fixed in | Dependents |
|---|---|---|---|
| org.apache.struts:struts2-core | 2.0.11 ... 2.5.8 (75 versions) | 2.5.26 | — |
Weakness Classification(1)
MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.
Data Freshness Timeline
(refreshed 51× in last 7d / 214× 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 301 total refreshes for this CVE.
- 2026-07-11 23:55 UTCEG score recompute
- 2026-07-11 20:14 UTCEG score recompute
- 2026-07-11 16:33 UTCEG score recompute
- 2026-07-11 12:52 UTCEG score recompute
- 2026-07-11 09:11 UTCEG score recompute
- 2026-07-11 08:25 UTCEPSS rescore
- 2026-07-11 08:25 UTCEPSS rescore
- 2026-07-11 05:29 UTCEG score recompute
- 2026-07-11 01:47 UTCEG score recompute
- 2026-07-10 22:06 UTCEG score recompute
- 2026-07-10 18:24 UTCEG score recompute
- 2026-07-10 17:52 UTCCISA KEV update
- 2026-07-10 14:41 UTCEG score recompute
- 2026-07-10 10:59 UTCEG score recompute
- 2026-07-10 07:16 UTCEG score recompute
- 2026-07-10 03:34 UTCEG score recompute
- 2026-07-09 23:52 UTCEG score recompute
- 2026-07-09 20:11 UTCEG score recompute
- 2026-07-09 16:30 UTCEG score recompute
- 2026-07-09 12:45 UTCEG score recompute
- 2026-07-09 09:02 UTCEG score recompute
- 2026-07-09 05:21 UTCEG score recompute
- 2026-07-09 01:39 UTCEG score recompute
- 2026-07-08 21:55 UTCEG score recompute
- 2026-07-08 18:14 UTCEG score recompute
Show 75 moreShow fewer
- 2026-07-08 14:32 UTCEG score recompute
- 2026-07-08 10:50 UTCEG score recompute
- 2026-07-08 07:09 UTCEG score recompute
- 2026-07-08 03:27 UTCEG score recompute
- 2026-07-07 23:45 UTCEG score recompute
- 2026-07-07 20:04 UTCEG score recompute
- 2026-07-07 19:01 UTCCISA KEV update
- 2026-07-07 17:16 UTCCISA KEV update
- 2026-07-07 16:22 UTCEG score recompute
- 2026-07-07 12:39 UTCEG score recompute
- 2026-07-07 08:57 UTCEG score recompute
- 2026-07-07 05:15 UTCEG score recompute
- 2026-07-07 01:34 UTCEG score recompute
- 2026-07-06 21:52 UTCEG score recompute
- 2026-07-06 18:09 UTCEG score recompute
- 2026-07-06 14:27 UTCEG score recompute
- 2026-07-06 10:46 UTCEG score recompute
- 2026-07-06 07:00 UTCEG score recompute
- 2026-07-06 03:19 UTCEG score recompute
- 2026-07-05 23:37 UTCEG score recompute
- 2026-07-05 19:55 UTCEG score recompute
- 2026-07-05 16:14 UTCEG score recompute
- 2026-07-05 12:31 UTCEG score recompute
- 2026-07-05 08:50 UTCEG score recompute
- 2026-07-05 05:07 UTCEG score recompute
- 2026-07-05 01:24 UTCEG score recompute
- 2026-07-04 21:43 UTCEG score recompute
- 2026-07-04 18:02 UTCEG score recompute
- 2026-07-04 14:18 UTCEG score recompute
- 2026-07-04 10:36 UTCEG score recompute
- 2026-07-04 06:53 UTCEG score recompute
- 2026-07-04 03:11 UTCEG score recompute
- 2026-07-03 23:29 UTCEG score recompute
- 2026-07-03 19:48 UTCEG score recompute
- 2026-07-03 16:07 UTCEG score recompute
- 2026-07-03 12:26 UTCEG score recompute
- 2026-07-03 08:43 UTCEG score recompute
- 2026-07-03 05:02 UTCEG score recompute
- 2026-07-03 01:20 UTCEG score recompute
- 2026-07-02 21:39 UTCEG score recompute
- 2026-07-02 17:57 UTCEG score recompute
- 2026-07-02 14:15 UTCEG score recompute
- 2026-07-02 10:34 UTCEG score recompute
- 2026-07-02 06:50 UTCEG score recompute
- 2026-07-02 03:09 UTCEG score recompute
- 2026-07-01 23:27 UTCEG score recompute
- 2026-07-01 19:46 UTCEG score recompute
- 2026-07-01 19:16 UTCCISA KEV update
- 2026-07-01 16:05 UTCEG score recompute
- 2026-07-01 12:21 UTCEG score recompute
- 2026-07-01 08:40 UTCEG score recompute
- 2026-07-01 04:59 UTCEG score recompute
- 2026-07-01 01:17 UTCEG score recompute
- 2026-06-30 21:36 UTCEG score recompute
- 2026-06-30 17:53 UTCEG score recompute
- 2026-06-30 14:11 UTCEG score recompute
- 2026-06-30 10:29 UTCEG score recompute
- 2026-06-30 06:47 UTCEG score recompute
- 2026-06-30 03:04 UTCEG score recompute
- 2026-06-29 23:21 UTCEG score recompute
- 2026-06-29 19:40 UTCEG score recompute
- 2026-06-29 19:12 UTCCISA KEV update
- 2026-06-29 15:59 UTCEG score recompute
- 2026-06-29 12:17 UTCEG score recompute
- 2026-06-29 08:36 UTCEG score recompute
- 2026-06-29 04:53 UTCEG score recompute
- 2026-06-29 01:11 UTCEG score recompute
- 2026-06-28 21:30 UTCEG score recompute
- 2026-06-28 17:48 UTCEG score recompute
- 2026-06-28 14:07 UTCEG score recompute
- 2026-06-28 10:25 UTCEG score recompute
- 2026-06-28 06:44 UTCEG score recompute
- 2026-06-28 03:03 UTCEG score recompute
- 2026-06-27 23:22 UTCEG score recompute
- 2026-06-27 19:40 UTCEG score recompute
Publicly available exploits
(8 references)Working exploit code is in the public domain (1 Metasploit module) (6 GitHub PoCs). Defenders should treat patch urgency accordingly — public PoCs typically lead to mass-exploitation within 24-72 hours.
- Open source ↗GitHub PoCuzzzval/CVE-2020-17530First seen Jan 7, 2021
- Open source ↗GitHub PoCCyborgSecurity/CVE-2020-17530First seen Dec 30, 2020
- GitHub PoCfengziHK/CVE-2020-17530-strust2-061First seen Dec 14, 2020
CVE-2020-17530-strust2-061
Open source ↗ - GitHub PoCAl1ex/CVE-2020-17530First seen Dec 13, 2020
S2-061 CVE-2020-17530
Open source ↗ - GitHub PoCwuzuowei/CVE-2020-17530First seen Dec 10, 2020
S2-061 的payload,以及对应简单的PoC/Exp
Open source ↗ - Open source ↗GitHub PoCka1n4t/CVE-2020-17530First seen Dec 9, 2020
- Metasploitexploit/multi/http/struts2_multi_eval_ognl✓ verifiedFirst seen Sep 14, 2020
Apache Struts 2 Forced Multi OGNL Evaluation
Open source ↗ - Nucleihttp/cves/2020/CVE-2020-17530.yamlFirst seen Jan 1, 2020
Apache Struts 2.0.0-2.5.25 - Remote Code Execution
Open source ↗
Related CVEs(same CWE)
Same CWE
10 shownCWE-917
- CVE-2020-7163EG 9.8EPSS 93%CRITICAL
- CVE-2020-7162EG 9.8EPSS 93%CRITICAL
- CVE-2020-7161EG 9.8EPSS 93%CRITICAL
- CVE-2020-7160EG 9.8EPSS 93%CRITICAL
- CVE-2020-7159EG 9.8EPSS 93%CRITICAL
- CVE-2020-7158EG 9.8EPSS 93%CRITICAL
- CVE-2020-7157EG 9.8EPSS 93%CRITICAL
- CVE-2020-7156EG 9.8EPSS 93%CRITICAL
- CVE-2020-7155EG 9.8EPSS 93%CRITICAL
- CVE-2020-7154EG 9.8EPSS 93%CRITICAL
Frequently asked(6)
What is CVE-2020-17530?
When was CVE-2020-17530 disclosed?
Is CVE-2020-17530 actively exploited?
What is the CVSS score of CVE-2020-17530?
Which products are affected by CVE-2020-17530?
How do I remediate CVE-2020-17530?
Dependency Blast Radius
See which npm, PyPI, Go, and Maven packages are affected by CVE-2020-17530
Is Your Infrastructure Affected by CVE-2020-17530?
EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.