千疮百孔的 Struts2 应用又曝出存在新的中危远程代码执行漏洞。该漏洞由京东安全汇报,编号为 CVE-2017-12611 ,漏洞危害程度为中危(Moderate)。当用户在Freemarker标签中使用错误的构造时,可能会造成远程代码执行攻击
漏洞编号
CVE-2017-12611
S2-053
漏洞影响
Struts 2.0.1 – Struts 2.3.33, Struts 2.5 – Struts 2.5.10
漏洞概述
当使用表达式文字或强制表达式在Freemarker标签(见下面的示例)和使用请求值可能会导致RCE攻击。
<@s.hidden name="redirectUri" value=redirectUri />
<@s.hidden name="redirectUri" value="${redirectUri}" />
在这两种情况下,属性都使用可写 value属性都会被Freemarker的表达式所威胁。
解决方案
1、升级到Apache Struts版本2.5.12或2.3.34
2、使用只读属性来初始化value属性(仅限getter属性)