Wavense
VulnerabilitiesVendorsMy Stack
Wavense© 2026 Wavense. All rights reserved.Privacy PolicyTerms & Conditions
Vulnerabilities/CVE-2020-17530
Vulnerability dossier

CVE-2020-17530

Apache Struts 2 Forced OGNL Evaluation RCE

VendororaclePublishedDec 10, 2020SourceNVDWeaknessCWE-917
Act now

Actively exploited in the wild. Patch or mitigate immediately — don't wait for a maintenance window.

⚙ WeaponizedMetasploit module availableopen ↗
Severity
Critical · 9.8
CVSS base score
Exploitation
In the wild
CISA KEV · Metasploit
Predicted risk
96% model
EPSS forecast — overtaken by confirmed exploitation
Exposure
Internet-facing
Exploitable remotely, no login, no user action
01

What's the risk?

An unauthenticated attacker, remotely over the network, with no user interaction, can fully compromise the system — steal data, tamper with it and take it offline.

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.

How it's exploitedMITRE ATT&CK · 2 observed in the wild
Initial Access
T1190Exploit Public-Facing Applicationobserved
Execution
T1059Command and Scripting Interpreterobserved

Techniques marked “observed” are corroborated by threat intelligence; the rest are inferred from the weakness type (CWE) and attack vector.

02

Who's exploiting it?

Corroborated threat activity referencing this CVE — with source and confidence, not inference.

Confirmed exploited in the wild. CISA KEV · catalogued Nov 3, 2021
Observed techniques MITRE-analysed · CTID Mappings Explorer
T1059Command and Scripting Interpreter
observed
T1190Exploit Public-Facing Applicationobserved

These techniques were analysed against this CVE's real-world exploitation — the matching entries in the ATT&CK chain above are marked “observed”.

03

Are we affected?

13
  • Affectedapache · strutsall versions
  • Affectedoracle · business_intelligence12.2.1.3.0
  • Affectedoracle · business_intelligence12.2.1.4.0
  • Affectedoracle · communications_diameter_intelligence_hub8.0.0
  • Affectedoracle · communications_diameter_intelligence_hub8.1.0
  • Affectedoracle · communications_diameter_intelligence_hub8.2.0
  • Affectedoracle · communications_diameter_intelligence_hub8.2.3
  • Affectedoracle · communications_policy_management12.5.0
  • Affectedoracle · communications_pricing_design_center12.0.0.3.0
  • Affectedoracle · financial_services_data_integration_hub8.0.3
  • Affectedoracle · financial_services_data_integration_hub8.0.6
  • Affectedoracle · hospitality_opera_55.6
  • Affectedoracle · mysql_enterprise_monitor8.0.23
04

What to do

Generated by Wavense from the CVE record — an immediate mitigation and the permanent fix.

  1. !

    Mitigate now

    Implement strict input validation and sanitization for all user-supplied data, especially when used in tag attributes. Deploy a Web Application Firewall (WAF) to detect and block malicious OGNL expressions before they reach the application. Enhance logging and monitoring for suspicious activity, including unusual OGNL expressions or unexpected process execution.

  2. ✓

    Permanent fix

    The permanent resolution is to upgrade Apache Struts 2 to version 2.5.26 or a later, more secure version. This upgrade addresses the vulnerability by properly handling OGNL evaluations and user input. Ensure all related dependencies are also updated to their latest stable and secure releases to prevent compatibility issues or introduce other vulnerabilities.

Technical details— weakness, CVSS vector & calculator, related CVEs

Business impact

An attacker can exploit this vulnerability to achieve remote code execution on the server running Apache Struts. This allows for complete compromise of the application and underlying system, potentially leading to data exfiltration, service disruption, or further network penetration. The business consequences include severe reputational damage, financial loss, and potential regulatory non-compliance.

Weakness

1
CWE-917Common Weakness Enumeration · MITRE definition

CVSS 3.1 details

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
0.0
/ 10.0 base
Critical severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Exploitability metrics
Attack VectorAV
Remotely exploitable across a network
Attack ComplexityAC
No special conditions required
Privileges RequiredPR
No authorization needed
User InteractionUI
No user participation needed
Impact metrics
ScopeS
Impact confined to the vulnerable component
ConfidentialityC
Total loss of confidentiality
IntegrityI
Total loss of integrity
AvailabilityA
Total loss of availability

Related vulnerabilities

Other CVEs affecting struts

NVD
9.8Critical
CVE-2022-22965KEV⚙ WeaponizedExploit likely

A Spring MVC or Spring WebFlux application running on JDK 9+ may be vulnerable to remote code execution (RCE) via data binding. The specific exploit requires the application to run on Tomcat as a WAR deployment. If the application is deployed as a Spring Boot executable jar, i.e. the default, it is not vulnerable to the exploit. However, the nature of the vulnerability is more general, and there may be other ways to exploit it.

oracleCWE-94Code InjectionNetworkLow effortNo authNo interactionCIA
2022-04-01
NVD
9.8Critical
CVE-2022-22963KEV⚙ WeaponizedExploit likely

In Spring Cloud Function versions 3.1.6, 3.2.2 and older unsupported versions, when using routing functionality it is possible for a user to provide a specially crafted SpEL as a routing-expression that may result in remote code execution and access to local resources.

oracleCWE-94Code InjectionNetworkLow effortNo authNo interactionCIA
2022-04-01
NVD
9.8Critical
CVE-2020-1938KEV⚙ WeaponizedExploit likely

When using the Apache JServ Protocol (AJP), care must be taken when trusting incoming connections to Apache Tomcat. Tomcat treats AJP connections as having higher trust than, for example, a similar HTTP connection. If such connections are available to an attacker, they can be exploited in ways that may be surprising. In Apache Tomcat 9.0.0.M1 to 9.0.0.30, 8.5.0 to 8.5.50 and 7.0.0 to 7.0.99, Tomcat shipped with an AJP Connector enabled by default that listened on all configured IP addresses. It was expected (and recommended in the security guide) that this Connector would be disabled if not required. This vulnerability report identified a mechanism that allowed: - returning arbitrary files from anywhere in the web application - processing any file in the web application as a JSP Further, if the web application allowed file upload and stored those files within the web application (or the attacker was able to control the content of the web application by some other means) then this, along with the ability to process a file as a JSP, made remote code execution possible. It is important to note that mitigation is only required if an AJP port is accessible to untrusted users. Users wishing to take a defence-in-depth approach and block the vector that permits returning arbitrary files and execution as JSP may upgrade to Apache Tomcat 9.0.31, 8.5.51 or 7.0.100 or later. A number of changes were made to the default AJP Connector configuration in 9.0.31 to harden the default configuration. It is likely that users upgrading to 9.0.31, 8.5.51 or 7.0.100 or later will need to make small changes to their configurations.

oracleNetworkLow effortNo authNo interactionCIA
2020-02-24
NVD
9.8Critical
CVE-2017-9791KEV⚙ WeaponizedExploit likely

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.

apacheCWE-20Improper Input ValidationNetworkLow effortNo authNo interactionCIA
2017-07-10
NVD
9.8Critical
CVE-2016-8735KEVExploit likely

Remote code execution is possible with Apache Tomcat before 6.0.48, 7.x before 7.0.73, 8.x before 8.0.39, 8.5.x before 8.5.7, and 9.x before 9.0.0.M12 if JmxRemoteLifecycleListener is used and an attacker can reach JMX ports. The issue exists because this listener wasn't updated for consistency with the CVE-2016-3427 Oracle patch that affected credential types.

oracleNetworkLow effortNo authNo interactionCIA
2017-04-06
NVD
9.8Critical
CVE-2017-5638KEV⚙ WeaponizedExploit likely

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.

ibmCWE-755Improper Handling of Exceptional ConditionsNetworkLow effortNo authNo interactionCIA
2017-03-11
NVD
9.8Critical
CVE-2013-2251KEV⚙ WeaponizedExploit likely

Apache Struts 2.0.0 through 2.3.15 allows remote attackers to execute arbitrary OGNL expressions via a parameter with a crafted (1) action:, (2) redirect:, or (3) redirectAction: prefix.

apacheCWE-74NetworkLow effortNo authNo interactionCIA
2013-07-19
NVD
9.8Critical
CVE-2012-0391KEV⚙ WeaponizedExploit likely

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during certain exception handling for mismatched data types of properties, which allows remote attackers to execute arbitrary Java code via a crafted parameter.

apacheCWE-94Code InjectionNetworkLow effortNo authNo interactionCIA
2012-01-08
0.0
/ 10.0 base
Critical severity
Key facts
CVE ID
CVE-2020-17530
Published
Dec 10, 2020
Last modified
Oct 27, 2025
CVSS
9.8 (v3.1)
EPSS
95.93%
In CISA KEV
Yes
Confidence
100/100
Weakness
CWE-917
Timeline
  1. Dec 10, 2020Published to NVDNVD
  2. Oct 27, 2025Record last modifiedNVD
  3. Aug 22, 2026AI analysis generatedWavense
View on NVD