← Vulnerability feed

Vulnerability record · CVE-2012-0391 · published 8 January 2012

CVE-2012-0391: Apache Struts ExceptionDelegator OGNL injection enables remote code execution

Apache · Struts

Apache Struts before 2.2.3.1 evaluates parameter values as OGNL expressions in the ExceptionDelegator component during exception handling for mismatched property data types. A crafted parameter therefore reaches the OGNL evaluator and can execute arbitrary Java code. This is a remotely reachable, unauthenticated code execution flaw in a widely deployed web framework.

9.8 CVSS 3.1 Critical CISA KEV since 21 Jan 2022 EPSS 76% · top 0.5% CWE-94 · Code injection
9.8CVSS 3.1 base score, v2 9.3
76%EPSS exploitation probability, 30 days
YesIn CISA KEV, fix deadline passed
1Affected product versions listed by NVD
15References, 6 tagged exploit
16 Jun 2026Last modified by NVD

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.

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Automated analysis

Generated by VULONE's analysis model from the NVD record, CISA KEV and EPSS data on 17 September 2026. Confidence: high.

critical priorityUnauthenticated remote code execution with a CVSS 3.1 score of 9.8, KEV listing, high EPSS, and public exploit code make this an urgent patch target.

What it is

Apache Struts before 2.2.3.1 evaluates parameter values as OGNL expressions in the ExceptionDelegator component during exception handling for mismatched property data types. A crafted parameter therefore reaches the OGNL evaluator and can execute arbitrary Java code. This is a remotely reachable, unauthenticated code execution flaw in a widely deployed web framework.

Impact

An attacker can execute arbitrary Java code in the context of the Struts application, leading to full compromise of the affected server and any data or credentials it can reach.

Attack surface

Reached over the network through HTTP requests to a Struts application; the CVSS vector shows no privileges and no user interaction required. Any exposed endpoint that triggers the ExceptionDelegator path with a crafted parameter is a candidate.

Exploitation

CVE-2012-0391 is listed in CISA KEV with a 2022-01-21 addition date, and EPSS reports a 30-day probability of about 0.756 (99.5th percentile). Multiple references are tagged Exploit, including Exploit-DB 18329, so public exploit code exists.

What to do

  • Upgrade Apache Struts to 2.2.3.1 or later, or to a currently supported Struts release.
  • If immediate upgrade is not possible, apply the vendor guidance in S2-008 and restrict or filter parameters that reach exception-handling paths.
  • Place affected applications behind a WAF or reverse proxy with rules blocking OGNL expression patterns in request parameters.
  • Remove or isolate internet exposure of legacy Struts applications that cannot be patched.
  • Verify no residual vulnerable Struts libraries remain in packaged WAR/EAR artifacts after remediation.

Detection

  • Search web and application logs for requests containing OGNL syntax such as %{, #, or java.lang in parameter values.
  • Monitor for unexpected child processes or outbound connections spawned by the Java application server.
  • Alert on exploitation attempts against known Struts endpoints using signatures for CVE-2012-0391 and related S2-008 patterns.
  • Inventory hosts and application artifacts for Struts versions below 2.2.3.1.

This assessment is produced automatically and is not human-reviewed. Verify against the vendor advisory before acting on it.

Exploitation in the wild

CISA added CVE-2012-0391 to the Known Exploited Vulnerabilities catalog on 21 January 2022 as "Apache Struts 2 Improper Input Validation Vulnerability". Required action: Apply updates per vendor instructions. Federal deadline 21 July 2022.

Affected products

1 vulnerable configurations from NVD's CPE data, grouped by vendor and product.

References

Track CVE-2012-0391 inside VULONE

Watch it alongside the ransomware crews, C2 infrastructure and forum chatter that reference it, query it through the API and pull it into your SIEM over TAXII.

Start free Open in platform

Related vulnerabilities

Same products first, then exploited flaws of the same weakness class.

9.8CVE-2020-17530Apache Struts forced OGNL evaluation enables remote code executionApache Struts 2.0.0 through 2.5.25 performs forced OGNL evaluation on raw user input placed in tag attributes, allowing expression language injection…KEVEPSS 96%analysed9.8CVE-2017-9791Apache Struts 1 plugin input validation flaw enables remote code executionThe Struts 1 plugin in Apache Struts 2.1.x and 2.3.x may allow remote code execution when a malicious field value is passed in a raw message to the A…KEVEPSS 99%analysed9.8CVE-2017-5638Apache Struts 2 Jakarta Multipart parser remote code executionThe Jakarta Multipart parser in Apache Struts 2 mishandles exceptions and error messages during file-upload attempts, letting a crafted Content-Type,…KEVEPSS 100%analysed9.8CVE-2013-2251Apache Struts 2 OGNL injection enables remote code executionApache Struts 2.0.0 through 2.3.15 fails to properly validate request parameters, allowing crafted action:, redirect:, or redirectAction: prefixes to…KEVEPSS 100%analysed8.1CVE-2018-11776Apache Struts namespace handling flaw enables remote code executionApache Struts 2.3 through 2.3.34 and 2.5 through 2.5.16 can execute remote code when alwaysSelectFullNamespace is enabled and results or url tags are…KEVEPSS 100%analysed8.1CVE-2017-9805Apache Struts REST Plugin XStream deserialization RCEThe REST Plugin in Apache Struts 2.1.1 through 2.3.x before 2.3.34 and 2.5.x before 2.5.13 uses an XStreamHandler with an XStream instance for deseri…KEVEPSS 99%analysed7.5CVE-2006-1547Apache Struts 1 ActionForm multipart parameter denial of serviceApache Struts before 1.2.9 with BeanUtils 1.7 exposes the public getMultipartRequestHandler method through ActionForm parameter binding. A remote att…KEVEPSS 55%analysed10.0CVE-2013-4316Apache struts improper access control vulnerabilityApache Struts 2.0.0 through 2.3.15.1 enables Dynamic Method Invocation by default, which has unknown impact and attack vectors.EPSS 8.4%

Source: NIST National Vulnerability Database (record CVE-2012-0391), CISA KEV, FIRST EPSS (scores of 2026-09-26). This page is refreshed as NVD updates the record.