Vulnerability record · CVE-2020-17530 · published 11 December 2020
CVE-2020-17530: Apache Struts forced OGNL evaluation enables remote code execution
Apache · Struts
Apache Struts 2.0.0 through 2.5.25 performs forced OGNL evaluation on raw user input placed in tag attributes, allowing expression language injection. Because the injected expression is evaluated server-side, an unauthenticated remote attacker can execute arbitrary code on the application server.
Description
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.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Automated analysis
critical priorityUnauthenticated network-reachable remote code execution with a CVSS of 9.8, KEV listing, and near-maximum EPSS probability makes this an urgent patch target.
What it is
Apache Struts 2.0.0 through 2.5.25 performs forced OGNL evaluation on raw user input placed in tag attributes, allowing expression language injection. Because the injected expression is evaluated server-side, an unauthenticated remote attacker can execute arbitrary code on the application server.
Impact
An attacker gains remote code execution with the privileges of the Struts application, which typically means full control of the host and any data or credentials it can reach.
Attack surface
Reachable over the network via HTTP requests to a Struts application that passes raw user input into tag attributes; the CVSS vector shows no privileges or user interaction required.
Exploitation
CVE-2020-17530 is listed in CISA KEV with a 2021-11-03 addition date, and EPSS gives a 30-day exploitation probability of 0.95931 (99.872 percentile), indicating active exploitation is expected.
What to do
- Upgrade Apache Struts to a version later than 2.5.25 per the S2-061 vendor advisory.
- Apply the Oracle CPU patches for affected Oracle products that embed Struts (Business Intelligence, Communications products, Financial Services Data Integration Hub, Hospitality Opera 5, MySQL Enterprise Monitor).
- If immediate upgrade is not possible, avoid passing raw user input into Struts tag attributes and apply the input validation guidance in S2-061.
- Treat any internet-facing Struts 2.0.0-2.5.25 instance as compromised until proven otherwise and review it for webshells and unexpected processes.
Detection
- Search web and application logs for OGNL metacharacters such as %{, ${, and # in request parameters and tag attribute values.
- Monitor for child processes spawned by the Java/Struts application server (for example shell, curl, or wget) as a sign of post-exploitation.
- Hunt for newly written JSP, WAR, or class files in web-accessible directories and for outbound connections from the application host.
- Alert on exploitation attempts against known Struts endpoints using the public S2-061 proof-of-concept patterns.
This assessment is produced automatically and is not human-reviewed. Verify against the vendor advisory before acting on it.
Exploitation in the wild
CISA added CVE-2020-17530 to the Known Exploited Vulnerabilities catalog on 3 November 2021 as "Apache Struts Remote Code Execution Vulnerability". Required action: Apply updates per vendor instructions. Federal deadline 3 May 2022.
Affected products
8 vulnerable configurations from NVD's CPE data, grouped by vendor and product.
References
Track CVE-2020-17530 inside VULONE
Watch it alongside the ransomware crews, C2 infrastructure and forum chatter that reference it, query it through the API and pull it into your SIEM over TAXII.
Related vulnerabilities
Same products first, then exploited flaws of the same weakness class.
Source: NIST National Vulnerability Database (record CVE-2020-17530), CISA KEV, FIRST EPSS (scores of 2026-09-22). This page is refreshed as NVD updates the record.