漏洞概要


漏洞编号:CVE-2017-12611、S2-053

漏洞概述:当开发人员在Freemarker标签中使用错误的构造时,可能会导致远程代码执行漏洞。

漏洞作者:Lupin@京东安全团队、David Greene、Roland McIntosh

影响范围:Struts 2.0.1 – Struts 2.3.33、Struts 2.5 – Struts 2.5.10

漏洞等级:中危

漏洞描述


当在Freemarker标签中使用表达式常量或强制表达式时使用请求值可能会导致远程代码执行漏洞(见下面的示例)。

1
2
<@s.hidden name="redirectUri" value=redirectUri />
<@s.hidden name="redirectUri" value="${redirectUri}" />

在这两种情况下,值属性都使用可写属性,都会受到Freemarker的表达式的影响。

修复建议


不要在代码中使用上述结构,或者使用只读属性来初始化value属性(仅限getter属性)。

升级到Apache Struts 2.5.13或2.3.34版本