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

Posted CNVD漏洞平台

tags:

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

安全公告编号: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漏洞的威胁级别。

三、漏洞处置建议

https://cwiki.apache.org/confluence/display/WW/Version+Notes+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  


本公告在编写过程中重点参考了CNVD技术组成员单位启明星辰公司、杭州安恒公司、绿盟科技公司、知道创宇公司、奇虎360公司的公开分析结果。


以上是关于关于Apache Struts2 REST插件存在S2-052远程代码执行漏洞的安全公告的主要内容,如果未能解决你的问题,请参考以下文章

安全日记Apache Struts2 REST插件又爆DoS漏洞

漏洞预警Apache Struts2(S2-052)远程代码执行漏洞

Struts2 S2-052远程代码执行漏洞预警(CVE-2017-9805)

Apache Struts2 再曝高危漏洞,建议立即进行检测与防护

高危漏洞预警39期:Struts2 REST插件XStream远程代码执行漏洞

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