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

Posted 安百科技

tags:

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

昨天晚上开始到今天早上安全圈内最让人关注的恐怕就是struts2的代码漏洞了,这是第N次被曝,struts2也是千疮百孔了。


安全公告编号:CNTA-2017-0063


北京时间9月5日晚,国家信息安全漏洞共享平台(CNVD)收录了Apache struts2 S2-052远程代码执行漏洞(CNVD-2017-25267,对应CVE-2017-9805),攻击者可以通过构造恶意XML请求在目标服务器上远程执行任意代码,获得服务器权限。目前相关利用代码已在互联网公开并传播,有可能导致互联网上大规模的攻击尝试。


一、漏洞情况分析


Struts2是第二代基于Model-View-Controller(MVC)模型的java企业级web应用框架,并成为国内外较为流行的容器软件中间件。Xstream是一种OXMapping技术,是用来处理XML文件序列化的框架,在将JavaBean序列化或将XML文件反序列化的时候,不需要其它辅助类和映射文件。Xstream也可以将JavaBean序列化成JSON或反序列化,使用非常方便。


Struts2的REST插件使用带有XStream例程的XStreamHandler执行反序列化操作,但在反序列化过程中未做任何类型过滤,导致攻击者可能在反序列化XML负载时构造恶意的XML内容执行任意代码。


CNVD对漏洞的综合评级均为“高危”。


二、漏洞影响范围


根据官方公告情况,漏洞影响Apache Struts2.5至Struts 2.5.12版本。参考长亭公司的核验结果,Apache Struts 2.3.33版本也受到漏洞影响且官方网站未发布对应版本的更新。综合评估认为,虽然攻击原理通用,但由于目前攻击利用过程存在远程指令执行回显的技术限制以及需要有REST插件应用的前提条件,本次S2-052漏洞威胁达不到S2-045/046漏洞的威胁级别。


三、漏洞处置建议


根据官方发布的安全更新,建议升级到ApacheStruts版本2.5.13


此外,可以采用如下临时解决方案:


1、如果非网站功能必需,建议删除StrutsREST插件,或仅用于服务器普通页面和JSONs:


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


2、限制服务端扩展类型,删除XML支持。


注:兼容问题


由于可用类的默认限制,某些REST操作可能会影响到正常的网站功能。在这种情况下,请调查介绍的新接口以允许每个操作定义类限制,这些接口是:


org.apache.struts2.rest.handler.AllowedClasses

org.apache.struts2.rest.handler.AllowedClassNames

org.apache.struts2.rest.handler.XStreamPermissionProvider


附:参考链接:


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

http://www.cnvd.org.cn/flaw/show/CNVD-2017-25267  


了解更多网络安全相关问题,加小编微信拉你进群

以上是关于Apache struts2(S2-052)远程执行代码漏洞的主要内容,如果未能解决你的问题,请参考以下文章

网络安全预警通告Apache Struts2(S2-052) 远程代码执行漏洞

Struts2远程代码执行漏洞S2-052 复现&防御方案

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

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

未然预警 | Apache Struts2再爆高危漏洞S2-052

安全播报 | Apache Struts2 又双叒叕现高危漏洞(S2-052) 创宇盾无需升级即可防御