预警|Struts2 REST插件存在远程代码执行漏洞(CVE-2017-9805)

Posted 安恒应急响应中心

tags:

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

漏洞描述

Struts2 是Apache 软件基金会负责维护的一个基于MVC设计模式的Web 应用框架开源项目。


Struts2的REST插件使用带有XStream例程的XStreamHandler执行反序列化操作,但在反序列化过程中没有执行任何类型过滤,这可能在反序列化XML负载时执行任意代码。任意攻击者都可以构造恶意的XML内容来利用这个漏洞。

 

关于Xstream:Xstream是一种OXMapping技术,是用来处理XML文件序列化的框架,在将JavaBean序列化或将XML文件反序列化的时候,不需要其它辅助类和映射文件,使得XML序列化不再繁索。Xstream也可以将JavaBean序列化成JSON或反序列化,使用非常方便。

 

漏洞危害

攻击者可以通过构造恶意XML请求在目标服务器上远程执行任意代码。

 

受影响版本

Struts 2.5 - Struts 2.5.12

 

漏洞利用前置条件

必须使用REST插件。

 

风险等级

安恒信息应急响应中心将此漏洞安全风险定级为: 高危



修复建议

https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.13

 

临时缓解措施

暂无有效的临时缓解措施。最好的方法是在不使用时删除Struts REST插件,或仅限于服务器正常页面和JSON:

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

 

向后兼容性

由于对可用的类应用了默认的限制,某些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

 

漏洞详细分析情况,请关注安恒信息后续分析报告。

以上是关于预警|Struts2 REST插件存在远程代码执行漏洞(CVE-2017-9805)的主要内容,如果未能解决你的问题,请参考以下文章

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

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

漏洞预警 | 高危Struts REST插件远程代码执行漏洞(S2-052)

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

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

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