Bug 997755 (CVE-2011-3923) - CVE-2011-3923 struts2: Remote code execution via OGNL injention in HTTP parameter values
Summary: CVE-2011-3923 struts2: Remote code execution via OGNL injention in HTTP param...
Alias: CVE-2011-3923
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
Depends On:
TreeView+ depends on / blocked
Reported: 2013-08-16 07:20 UTC by Arun Babu Neelicattu
Modified: 2021-02-04 00:54 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2013-08-16 07:21:57 UTC

Attachments (Terms of Use)

Description Arun Babu Neelicattu 2013-08-16 07:20:38 UTC
Regular expression in ParametersInterceptor matches top['foo'](0) as a valid expression, which OGNL treats as (top['foo'])(0) and evaluates the value of 'foo' action parameter as an OGNL expression. This lets malicious users put arbitrary OGNL statements into any String variable exposed by an action and have it evaluated as an OGNL expression and since OGNL statement is in HTTP parameter value attacker can use blacklisted characters (e.g. #) to disable method execution and execute arbitrary methods, bypassing the ParametersInterceptor and OGNL library protections.

Affects: 2.0.0 -
Fixed in:

[1] http://struts.apache.org/development/2.x/docs/s2-009.html
[2] http://blog.o0o.nu/2012/01/cve-2011-3923-yet-another-struts2.html

Comment 2 Chess Hazlett 2019-09-17 20:31:49 UTC

A previous statement by Red Hat related to this CVE, prior to August 2019, said that Apache Struts 2 is not included in any Red Hat products. This earlier statement was incorrect. While Struts 2 is not actively compiled, shipped, used, or enabled in any Red Hat provided final products, and does not cause any vulnerability in the product, struts2-core jars have been included in some products' source code packages. The inclusion was part of an import of the Google Guice repository, which includes struts2-core. Customers that build artefacts from our source code could be at risk. Red Hat will remove these artefacts from source code in future releases.

The products that included the Struts 2 artefacts in their source jars:
Fuse Service Works 6.0.0
Single Sign On 7.3.0+

If you have used the source package from one of these products to build artefacts on your system, you should do the following to remove potentially affected jars:
1. Run 'find . -name struts2*.jar' under the source location
2. Remove any files found
This will not affect the product, as the jar is included with the source of google-guice, but no functionality requiring struts2 is implemented.

Note You need to log in before you can comment on or make changes to this bug.