Patchfirst
CVE-2013-2251 KEVPublic exploit Critical · 9.8 EPSS >99.9%

Apache Struts Improper Input Validation Vulnerability

Apache · Struts

Summary

The flaw is an improper input validation issue in Apache Struts, versions 2.0.0 through 2.3.15, where parameter values with a crafted action:, redirect:, or redirectAction: prefix are processed as OGNL expressions. An unauthenticated remote attacker with network access can exploit it by sending a crafted request, with no user interaction or special configuration required, to execute arbitrary OGNL expressions.

Official description · NVD

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.

Breakdown
69.9 / 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 7 years after disclosure. Public exploit code (Metasploit) was available 18 days before disclosure.

  1. Public exploit codeMetasploit18 days before
  2. Disclosedday 0
  3. First seen exploitedVulnCheck KEV evidence+7 yrs
  4. Added to CISA KEVEU database agrees+9 yrs

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

See the family tree

8 related vulnerabilities in the same code over 5 years. The latest fix listed for struts2-core is 2.3.16.

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

  1. CVE-2013-2134Struts 2 before 2.3.14.3 allows remote attackers to execute…16 Jul 2013
  2. same family
    CVE-2013-2135Struts 2 before 2.3.14.3 allows remote attackers to execute…16 Jul 2013
  3. Next fix in the same packageHigh

    Why these are linked:

    CVE-2013-2248Multiple open redirect vulnerabilities in Apache Struts 2.0.0…18 Jul 2013
  4. same family
    This CVECVE-2013-2251Struts Improper Input Validation20 Jul 2013KEV
  5. relatedMedium

    Why these are linked:

    CVE-2013-4310Struts 2.0.0 through 2.3.15.1 allows remote attackers to bypass…30 Sep 2013
  6. relatedHigh

    Why these are linked:

    • Fixed one release later2.3.15.2 → 2.3.15.3 (org.apache.struts:struts2-core)
    • Same code patched: ParameterAction.java (machine-matched)Functions: handleSpecialParameterscommit 0c8366ccommit 58947c3commit c643336
    CVE-2013-4316Struts 2.0.0 through 2.3.15.1 enables Dynamic Method Invocation…30 Sep 2013
  7. relatedMedium

    Why these are linked:

    CVE-2016-4438The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1…4 Jul 2016
  8. relatedMedium

    Why these are linked:

    CVE-2018-11776Struts Remote Code Execution22 Aug 2018KEV

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

  1. 2.3.14.3CVE-2013-213416 Jul 2013
  2. 2.3.14.3CVE-2013-213516 Jul 2013
  3. 2.3.15.1CVE-2013-224818 Jul 2013
  4. 2.3.15.1CVE-2013-225120 Jul 2013KEV
  5. 2.3.15.2CVE-2013-431630 Sep 2013
  6. 2.3.15.3CVE-2013-431030 Sep 2013
  7. 2.3.16CVE-2013-63482 Nov 2013Latest listed

techniques

2 , grouped by in kill-chain order, 2 cited passages 2

Initial AccessTA0001

Exploit Public-Facing Application T1190 Medium
AI mapping from the description · how it is exploited

Remote attacker exploits public-facing Struts application

allows remote attackers to execute arbitrary OGNL expressions
From the official description (NVD) Original (opens in a new tab) ↗

ExecutionTA0002

Command and Scripting Interpreter T1059 Medium
AI mapping from the description · primary impact

OGNL expression execution yields arbitrary code execution

allows remote attackers to execute arbitrary OGNL expressions
From the official description (NVD) Original (opens in a new tab) ↗

Detection

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

Rules for this CVE

0 that reference CVE-2013-2251 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-47qp-8v9g-39hp

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.3.15.1 for CVE-2013-2251.

Affected versions

If you runUpgrade to
All versions before 2.3.15.12.5.33first fix for this CVE: 2.3.15.1

“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

17 links, grouped by NVD tag (16 duplicates merged)
↑ ↓ chooseEnter openEsc close