安全通告|Struts2(S2-052)远程命令执行漏洞

Posted 海峡信息

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安全通告|Struts2(S2-052)远程命令执行漏洞相关的知识,希望对你有一定的参考价值。

尊敬的海峡用户:

Apache Struts 2近日被曝存在远程命令执行漏洞,漏洞编号S2-052,CVE编号为CVE-2017-9805。当web应用系统采用Struts REST插件的XStream handler去反序列处理XML请求时,可能造成RCE远程代码执行漏洞,攻击者可远程远程执行系统命令,导致系统被入侵。

漏洞描述

当应用系统启用Struts REST插件的XStream handler去反序列处理一个没有经过任何类型过滤的XStream的实例时,可能导致在处理XML时,造成远程代码任意执行。

风险分析

此次漏洞危害等级:严重。攻击者利用该漏洞,可能远程执行任意系统命令。

漏洞影响版本

Struts 2.5 - Struts 2.5.12

修复方案

1


 建议您升级Struts 2.5.13 (如果之前s2-045、s2-046漏洞已升级到相应版本,无需再升级);

提醒:在升级前请做好快照备份。

2


代码层面修复,对客户端GET、POST请求的内容进行严格过滤,如可采用filter过滤类进行全局过滤,过滤特征如下:

 FileOutputStream    Runtime  FileInputStream   ProcessBuilder   getWriter  getRealPath

等特征(由于升级Struts框架可能会影响业务,可采用代码层面修复方式)

3


由于漏洞触发需要系统同时使用REST插件及XStream。请检查应用系统是否有使用REST插件及XStream,检查方法如下:

可在应用系统部署目录下的web-inf\lib目录下查询是否有类似struts2-rest-plugin-x.x.x.jar的jar包,如无说明没使用REST插件,不受此漏洞影响,如有使用REST插件,进一步检查是否使用XStream,同样也在web-inf\lib目录下,查询是否有xstream-x.x.x.jar的jar包。

4


如果系统没有使用Struts REST插件,那么可以直接删除Struts REST插件,可在web-inf\lib目录下直接删除类似struts2-rest-plugin-x.x.x.jar的jar包或者在配置文件struts.xml中加入如下代码,限制服务端接收文件的扩展名:

<constant name="struts.action.extension" value="xhtml,,json" />

参考资料

https://cwiki.apache.org/confluence/display/WW/S2-052

海峡信息

关注海峡信息,获取更多信息安全资讯~

以上是关于安全通告|Struts2(S2-052)远程命令执行漏洞的主要内容,如果未能解决你的问题,请参考以下文章

CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052) 分析报告

优炫安全研究院发布struts 2 S2-052漏洞预警

Apache struts2(S2-052)远程执行代码漏洞

9.12安全帮每日资讯:Struts2 新漏洞(S2-052)出现利用实例;黑白名单要你何用;黑客可以远程访问医用注射泵

关于Apache Struts2 REST插件存在S2-052远程代码执行漏洞的安全公告

每日安全资讯漏洞预警 | 高危Struts REST插件远程代码执行漏洞(S2-052)