The Struts 2 DefaultActionMapper supports a method for short-circuit navigation state changes by prefixing parameters with "action:" or "redirect:", followed by a desired navigational target expression. This mechanism was intended to help with attaching navigational information to buttons within forms. In Struts 2 before 2.3.15.1 the information following "action:", "redirect:" or "redirectAction:" is not properly sanitized. Since said information will be evaluated as OGNL expression against the value stack, this introduces the possibility to inject server side code. Upstream Advisory: http://struts.apache.org/release/2.3.x/docs/s2-016.html Upstream bug: https://issues.apache.org/jira/browse/WW-4140 Upstream commit: https://svn.apache.org/viewvc?view=revision&revision=r1503127
Statement: 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.