高危漏洞| 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 2 曝高危漏洞(S2-052),黑客可远程执行任意代码