Patchfirst
CVE-2020-17530 KEVPublic exploit Critical · 9.8 EPSS 96.3%

Apache Struts Remote Code Execution Vulnerability

Apache · Struts

Summary

Apache Struts, a Java web application framework, contains a flaw where forced OGNL evaluation of raw user input in tag attributes can occur, in the Struts 2 series from 2.0.0 through 2.5.25. An attacker who can send requests to an affected application without authentication or user interaction may be able to achieve remote code execution, provided the application evaluates unsanitised input in those tag attributes.

Official description · NVD

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.

Breakdown
69.8 / 100
Exploited
Yes, in CISA KEV
Reports
0
Tactics
2/15

How an attack unfolds

Based on mappings. Select a step to see the evidence.
  1. How attackers get in

  2. What they do

First seen exploited 4 months after disclosure. Public exploit code (Metasploit) was available 3 months before disclosure.

  1. Public exploit codeMetasploit3 mo before
  2. Disclosedday 0
  3. First seen exploitedVulnCheck KEV evidence+4 mo
  4. Added to CISA KEVEU database agrees+11 mo

CISA KEV listing is when exploitation was confirmed, not necessarily the first attack.

See the family tree

A fix was bypassed or incomplete once over 16 months. The latest fix listed for struts2-core is 6.1.2.1.

Same bug familyLinked by evidence that a fix failed or the same code was patched again. Oldest first.

  1. This CVECVE-2020-17530Struts Remote Code Execution11 Dec 2020KEV
  2. incomplete fixHigh

    Why these are linked:

    • Stated in the CVE textThe fix issued for CVE-2020-17530 was incomplete.
    • Fixed one release later2.5.26 → 2.5.30 (org.apache.struts:struts2-core)
    • Similar weakness in the same product (machine-matched)same product + CWE + description similarity
    CVE-2021-31805Forced OGNL evaluation, when evaluated on raw not validated user…12 Apr 2022

Fixes in struts2-coreMaven package, by fixed version. Earlier and later fixes in the same package, not necessarily the same bug.

  1. 2.5.22CVE-2012-15925 Dec 2019
  2. 2.5.22CVE-2019-023014 Sep 2020
  3. 2.5.22CVE-2019-023314 Sep 2020
  4. 2.5.26CVE-2020-1753011 Dec 2020KEV
  5. 2.5.30CVE-2021-3180512 Apr 2022
  6. 6.1.1CVE-2025-6849311 Jan 2026
  7. 6.1.2.1CVE-2023-3414914 Jun 2023Latest listed

techniques

2 , grouped by in kill-chain order 2

Initial AccessTA0001

Exploit Public-Facing Application T1190 Medium
MITRE CTID mapping of the KEV entry · how it is exploited

CVE-2020-17530 is a remote code execution vulnerability in Apache Struts versions 2.0.0 - 2.5.25 allows an attacker to execute arbitrary code via forced Object Graph Navigational Language (OGNL) evaluation on raw user input in tag attributes.

ExecutionTA0002

Command and Scripting Interpreter T1059 Medium
MITRE CTID mapping of the KEV entry · primary impact

CVE-2020-17530 is a remote code execution vulnerability in Apache Struts versions 2.0.0 - 2.5.25 allows an attacker to execute code via forced Object Graph Navigational Language (OGNL).

Detection

0 rules for this CVE · 244 general rules for its techniques

Rules for this CVE

0 that reference CVE-2020-17530 directly.

CVE-specific rules are not available in this build. Search SigmaHQ ↗

Sigma rules © SigmaHQ, Detection Rule License 1.1; linked, not reproduced.

Am I affected? What do I upgrade to?

From GitHub Security Advisories and OSV

1 package in 1 ecosystem. Main package: org.apache.struts:struts2-core.

Mavenorg.apache.struts:struts2-coreGHSA-jc35-q369-45pv

Upgrade to 2.5.33

Fixes this CVE and 23 other known vulnerabilities in this package (CVE-2008-6505, CVE-2010-1870, +21).

Still affected on this line by CVE-2024-53677 (fixed in 6.4.0, a newer line); CVE-2025-68493 (no fix published).

Set the version to 2.5.33 or later in your pom.xml or build.gradle.

First fixed in 2.5.26 for CVE-2020-17530.

Affected versions

If you runUpgrade to
2.0.0 up to 2.5.262.5.33first fix for this CVE: 2.5.26

“Up to” means the second version is the fix and is not affected.

Check your lockfile against all CVEs

What security researchers reported

Not named in any threat report yet

Also mentioned in 50 community threat pulses (AlienVault OTX)

Weaker evidence

Pulses are indicator collections that anyone can publish. A mention is not confirmation of exploitation.

References

12 links, grouped by NVD tag (11 duplicates merged)
↑ ↓ chooseEnter openEsc close