当前位置:首页 > Safe 2017年09月06日
【9月6日更新】漏洞预警 | 高危Struts REST插件远程代码执行漏洞(S2-052)

当用户使用带有 XStream 程序的 Struts REST 插件来处理 XML payloads 时,可能会遭到远程代码执行攻击。

[9月6日已更新]

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

漏洞编号

CVE-2017-9805

S2-052

3.png

漏洞影响

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支持。



发表评论: