信息网络安全

关于Apache Strusts2存在远程命令执行漏洞威胁的安全公告

时间:2017-07-09 17:58:47 来源:互联网 打印

        7月7日,Apache Struts 发布最新的安全公告,Struts2 存在远程命令执行漏洞(命名编号为S2-048)。国家信息安全漏洞共享平台(CNVD)已将该漏洞收录为高危漏洞(编号:CNVD-2017-13259),攻击者可以利用该漏洞获取服务器主机系统权限。具体情况如下: 

        S2-048漏洞情况分析: 

        Struts2是第二代基于Model-View-Controller (MVC)模型的Java企业级web应用框架,是较为流行的容器软件中间件。2017年7月7日,Apache Struts 发布最新的安全公告S2-048,漏洞成因是Showcase 应用演示Struts2 整合Struts 1 的插件中存在一处任意代码执行缺陷,当应用使用了Struts2 Struts1 的插件时,用户可以构造特定输入(一般为Header字段的OGNL表达式)发送到ActionMessage 类中可导致命令执行,进而获得服务器主机系统权限。S2-048漏洞主要影响使用Struts 1插件的Struts 2.3.x版本,并存在一定的漏洞利用前提限定。 

        漏洞修复建议: 

        1. 关闭Showcase插件。

        2. 官方已在Struts 2.5.10.1版本中修复了该漏洞,请参考官网及时升级:http://struts.apache.org/download.cgi#struts25101

        3. 开发者通过使用resource keys替代将原始消息直接传递给ActionMessage的方式。 如下所示:

        messages.add("msg", new ActionMessage("struts1.gangsterAdded", gform.getName()));

        不要使用如下的方式:

        messages.add("msg", new ActionMessage("Gangster " + gform.getName() + " was added")); 

 

        4. 在非必要的情况下禁用struts2-struts1-plugin插件。将struts2-struts1-plugin-2.3.x.jar文件从 “/WEB-INF/lib”目录中移动到其他文件夹或者删除。

分享到
快速通道