Patchfirst
CVE-2012-0391 KEVPublic exploit Critical · 9.8 EPSS 75.6%

Apache Struts 2 Improper Input Validation Vulnerability

Apache · Struts 2

Summary

The ExceptionDelegator component of Apache Struts 2, in versions before 2.2.3.1, interprets certain parameter values as OGNL expressions during exception handling for mismatched property data types. A remote attacker can execute arbitrary Java code by sending a crafted parameter, requiring no authentication, no user interaction, and only network access to the application.

Official description · NVD

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.

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 10 years after disclosure. Public exploit code (Exploit-DB) was available 2 days before disclosure.

  1. Public exploit codeExploit-DB2 days before
  2. Disclosedday 0
  3. First seen exploitedVulnCheck KEV evidence+10 yrs
  4. Added to CISA KEVEU database agrees+10 yrs

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

See the family tree

7 fixes in struts2-core over 3 years. The latest fix listed for struts2-core is 2.3.1.1.

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

  1. 2.1.3CVE-2008-650523 Mar 2009
  2. 2.2.1CVE-2010-187017 Aug 2010
  3. 2.2.3CVE-2011-177213 May 2011
  4. 2.2.3.1CVE-2012-03918 Jan 2012KEV
  5. 2.2.3.1CVE-2012-03928 Jan 2012
  6. 2.2.3.1CVE-2012-08382 Mar 2012
  7. 2.3.1.1CVE-2012-03938 Jan 2012Latest 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 crafted parameter against public-facing web application

allows remote attackers to execute arbitrary Java code via a crafted parameter
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 interpretation yields arbitrary code execution

interprets parameter values as OGNL expressions during certain exception handling
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-2012-0391 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

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

Mavenorg.apache.struts:struts2-coreGHSA-4wrr-9h5r-m92w

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.2.3.1 for CVE-2012-0391.

Affected versions

If you runUpgrade to
All versions before 2.2.3.12.5.33first fix for this CVE: 2.2.3.1

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

Other packages that bundle this code (1)

Forks, repackagings and products that include the affected code. Each has its own fixed version.

  • Mavenorg.apache.struts.xwork:xwork-core
    Affected: All versions before 2.2.3.1Upgrade to 2.3.18 or later

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

8 links, grouped by NVD tag (7 duplicates merged)
↑ ↓ chooseEnter openEsc close