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

Posted 金融安全家

tags:

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

千疮百孔的 Struts2 应用又曝出存在新的高危远程代码执行漏洞。该漏洞由lgtm.com的安全研究员汇报,编号为 CVE-2017-9805 ,漏洞危害程度为高危(Critical)。当用户使用带有 XStream 程序的 Struts REST 插件来处理 XML payloads 时,可能会遭到远程代码执行攻击。

[9月6日已更新]

相似的漏洞已经在 Struts 中多次发现,今年早些时候攻击者还利用了 Windows 服务器中的 Apache Struts 漏洞散发 Cerber 勒索软件。

漏洞编号

CVE-2017-9805

S2-052


漏洞影响

Struts 2.5 – Struts 2.5.12 版本,据称还影响到 2.3.33 版本。

据悉,Fortune 100 中 65% 使用 Struts 框架搭建 Web 应用的企业均可能受到影响,如花旗集团、美国国家税务局、英国沃达丰电信、维珍航空等等,说明此次漏洞影响范围较大,相关企业应当给予重视。

漏洞概述

Struts2 REST 插件使用带有 XStream 程序的 XStream Handler 进行未经任何代码过滤的反序列化操作,这可能在反序列化XML payloads时导致远程代码执行。任意攻击者都可以构造恶意的XML内容提升权限。

漏洞是由 Semmle 使用其开源分析工具 lgtm 及 QL 语言编写的 Java 反序列威胁查询检测而出的,详情可参考[ lgtm blog ]。

向下兼容

由于Struts的某些默认限制,部分REST插件可能会停止工作。 此时请检查可能导致停止工作接口,这些接口分别是:

org.apache.struts2.rest.handler.AllowedClasses

org.apache.struts2.rest.handler.AllowedClassNames

org.apache.struts2.rest.handler.XStreamPermissionProvider

漏洞POC

漏洞发现者方面 Semmle 表示已经得到简单但有效的 exploit,但目前并不打算公开。

解决方案

目前尚无完美解决方案,建议如下:

1.建议尽快升级到 2.5.13版本。

2.在不使用时删除 Struts REST插件,或仅限于服务器普通页面和JSONs:

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

3.限制服务器端扩展类型,删除XML支持。

漏洞响应

2017 年 7 月 17 日:初次披露

2017 年 8 月 2 日: 为漏洞修复修改 API 

2017 年 8 月 14 日: Struts 修复前检查

2017 年 8 月 16 日: 漏洞正式得到编号 CVE-2017-9805

2017 年 9 月 5 日: Struts 版本 2.5.13 发布 


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

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

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

Struts REST插件远程代码执行漏洞(S2-052)

Struts 2 曝高危漏洞(S2-052),黑客可远程执行任意代码

Struts2 REST 插件 XStream 远程代码执行漏洞 S2-052(CVE-2017-9805)

紧急Struts 2再爆高危漏洞,解决方案一览