Bug 1489478 (CVE-2017-12611)
| Summary: | CVE-2017-12611 struts: RCE attack when using an unintentional expression in Freemarker tag instead of string literals | ||
|---|---|---|---|
| Product: | [Other] Security Response | Reporter: | Adam Mariš <amaris> |
| Component: | vulnerability | Assignee: | Red Hat Product Security <security-response-team> |
| Status: | CLOSED NOTABUG | QA Contact: | |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | unspecified | CC: | aileenc, bkearney, chazlett, dbhole, felias, ggainey, gvarsami, hchiorea, jcoleman, jolee, jshepherd, kconner, ldimaggi, loleary, meissner, mmraka, nwallace, pavelp, puntogil, rwagner, spinder, taw, tcunning, theute, thomas, tkirby, tlestach, vhalbert |
| Target Milestone: | --- | Keywords: | Security |
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | struts 2.3.34, struts 2.5.12 | Doc Type: | If docs needed, set a value |
| Doc Text: |
It was found that Freemarker in Struts would permit using read-only properties in value assignment of tag expressions. An attacker could use this to execute arbitrary code.
|
Story Points: | --- |
| Clone Of: | Environment: | ||
| Last Closed: | 2017-11-30 20:52:00 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1489481 | ||
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. |
When using expression literals or forcing expression in Freemarker tags (see example below) and using request values, it can lead to RCE attack. <@s.hidden name="redirectUri" value=redirectUri /> <@s.hidden name="redirectUri" value="${redirectUri}" /> In both cases a writable property is used in the value attribute and in both cases this is threatened as an expression by Freemarker. Affected versions: Struts 2.0.1 - Struts 2.3.33, Struts 2.5 - Struts 2.5.10 External References: https://struts.apache.org/docs/s2-053.html