WaratekVRT Sign in

CVE-2012-0391 Apache Struts

Affected softwareApache Struts
Severity9.8 Critical CVSS 3.1 3 scores
Fixed in2.2.3.1
WeaknessCode injection (CWE-94)
Published8 Jan 2012
Updated29 Sep 2026

Description

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.

CWE-20 · Improper input validation

Exploitation status

Exploited

Confirmed real-world exploitation.

  • CISA KEV listed Confirmed exploitation in the wild. Added 2022-01-21 · remediation due 2022-07-21 · ransomware use: unknown
  • VulnCheck KEV listed Exploitation reported in the wild. 2 citations · earliest 2021-10-13.
  • CISA Vulnrichment exploitation: active CISA records active exploitation. Automatable: yes, technical impact: total.
  • Indexed PoC 3 indexed Published artifacts you can open, in Exploit-DB, Metasploit; first seen 2012-01-06.
  • EPSS 76% chance in 30 days A model's forecast, not a report of exploitation. Higher than 99.5% of all scored CVEs.

VulnCheck KEV

Exploitation evidence from VulnCheck Known Exploited Vulnerabilities (VulnCheck KEV), used under VulnCheck's community terms. View CVE-2012-0391 in VulnCheck (free account).

EvidenceSourceDetailDate
Reported exploitation fortiguard.com /encyclopedia/ips/30956 2021-10-13
Reported exploitation cisa.gov /sites/default/files/feeds/known_exploited_vulnerabilities.json 2022-01-21
IndexArtifactStarsFirst seen
Exploit-DB Apache Struts 2.2.1.1 - Remote Command Execution (Metasploit) 2012-06-05
Exploit-DB Apache Struts 2 < 2.3.1 - Multiple Vulnerabilities 2012-01-06
Metasploit Apache Struts Remote Command Execution (excellent rank)

Waratek protection

Protected by Waratek

Waratek has a rule that blocks attacks on this vulnerability.

Decided by A researcher's recorded decision for this specific CVE
Finding A researcher found this CVE protected by the ARMR Process rule, ARMR Filesystem Write.

Waratek research note

written 2026-11-13

Written by a Waratek engineer who reviewed this CVE. Their decision sets the status above, ahead of every automated rule except a withdrawal.

Comments

Rule Name: ARMR Process rule, ARMR Filesystem Write

OGNL injection via the Struts conversion-error override expression. The Process rule (with /bin/* in its execute list) blocks the Runtime.exec payloads; a filesystem write rule on the server working directory and web root blocks the Java target's JAR and JSP drops. An expression that reads files or data directly in Java, without starting a program or writing a file there, is not stopped.

How to mitigate CVE-2012-0391

Upgrade Apache Struts to 2.2.3.1 or later. Until you can, Waratek RASP blocks exploitation with its process and filesystem rules. It runs inside the Java application, with no code changes.

Waratek RASP Runtime protection for Java applications

CVSS

9.8 CRITICAL v3.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H 3 metrics

We show the highest score from the newest CVSS version. Scores from different versions can't be compared, and the first score listed is sometimes a 0.0 placeholder.

VersionScoreBandVectorAssignerType
CVSS 3.1 9.8 CRITICAL CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H NVD Primary published
CVSS 3.1 9.8 CRITICAL CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H CISA-ADP Secondary
CVSS 2.0 9.3 none AV:N/AC:M/Au:N/C:C/I:C/A:C NVD Primary

Affected software and releases

Maven packages

Affected and fixed versions, from OSV.dev
PackageIntroducedFixedLast affected
org.apache.struts:struts2-core 0 2.2.3.1 unbounded
org.apache.struts.xwork:xwork-core 0 2.2.3.1 unbounded

Products and versions

3 products, 3 version entries
SourceVendorProductSchemeAffected versions
nvd apache struts generic < 2.2.3.1
osv org.apache.struts struts2-core generic < 2.2.3.1
osv org.apache.struts.xwork xwork-core generic < 2.2.3.1

References

URLTags
https://github.com/apache/struts/commit/25e50069d60434a30395e3a98357ffba2bed427e WEB
https://github.com/apache/struts/commit/5f54b8d087f5125d96838aafa5f64c2190e6885b WEB
https://github.com/apache/struts/commit/b4265d369dc29d57a9f2846a85b26598e83f3892 WEB
https://github.com/apache/struts PACKAGE
https://issues.apache.org/jira/browse/WW-3668 WEB
https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2012-0391 WEB
https://www.sec-consult.com/files/20120104-0_Apache_Struts2_Multiple_Critical_Vulnerabilities.txt WEB
http://archives.neohapsis.com/archives/bugtraq/2012-01/0031.html WEB
http://secunia.com/advisories/47393 WEB
http://struts.apache.org/2.x/docs/s2-008.html WEB

Timeline

Published2012-01-08By the CVE Program.
VulnCheck KEV: earliest evidence2021-10-13Date of the oldest evidence of exploitation in VulnCheck KEV's record. VulnCheck does not publish the date it listed the CVE.
Added to CISA KEV2022-01-21Listed in CISA's Known Exploited Vulnerabilities catalog.
VulnCheck KEV: latest evidence2022-01-21Date of the newest report, exploit reference or honeypot sighting in VulnCheck KEV's record.
NVD record modified2026-06-16NVD's own last-modified date for this record.
Last VRT activity2026-09-29Most recent commit touching this CVE's classification, patch or rule file.
Classification created2026-11-13First commit adding this CVE's research note.