安全通告
S2-053远程代码执行漏洞
1. 漏洞描述
(S2-053/CVE-2017-12611)
Struts2 REST插件存在远程代码执行漏洞,开发人员在使用表达式文本或Freemarker标签强制表达式和使用要求的值可能会导致远程代码执行攻击。
2. 危害等级
中危
3. 影响范围
Struts 2.0.1 - Struts 2.3.33
Struts 2.5 - Struts 2.5.10
4. 利用方式
远程利用
5. 示例
在这两种情况下,值属性都使用可写属性,都会受到Freemarker的表达式的影响:
<@s.hidden name="redirectUri" value=redirectUri />
<@s.hidden name="redirectUri" value="${redirectUri}" />
6. 修复方案
1. 开发人员应避免在Freemarker的结构代码中使用可写的属性,或者使用只读属性来初始化value属性(仅限getter属性)。
2. 升级到Apache Struts 2.5.13或2.3.34版本;官方表示,虽然新版本限制了Freemarker的配置属性,但是开发人员还是应该避免使用有问题的结构属性。
官方下载地址:
http://struts.apache.org/download.cgi#struts-ga
3. 虽然S2-053的漏洞利用代码暂未公开,但最近的S2-052的漏洞利用代码已经公开,强烈建议更新到最新版本或使用WAF等措施缓解威胁。
- END -