安全监控到struts2存在远程任意代码执行漏洞,详细的攻击细节尚未公布。攻击者成功利用相关漏洞可以远程执行任意代码,提升用户权限,访问未授权的内容等。 现官方已发布补丁,并标记此漏洞为严重!请各开发者检查并更新版本。
【影响范围】
Struts 2.0.0 - Struts 2.3.15.1【历史所有版本均受影响】
【修复方案】
目前官方已经发布了最新版本的struts 2.3.15.2( http://struts.apache.org/download.cgi ),升级替换相应的struts2库,并确保struts.xml配置文件中struts.enable.DynamicMethodInvocation 的值为false。然后重启tomcat服务器可完成对漏洞的修复。
注意:本次升级可能会影响业务正常运行,特别是使用Dynamic Method Invocation功能的业务,请开发商在升级前确保经过充分测试。
若升级到2.3.15.2之后有问题,建议开发者们从代码层面去掉DMI功能,这样可以彻底修复该漏洞;
其次可以将struts.xml配置文件中struts.enable.DynamicMethodInvocation 的值为true,开启该配置存在一定安全风险,漏洞未完全修复;
最后,若前两种方法不能采用或者无效,则建议回退到升级前的版本,漏洞未修复。