本文共 2049 字,大约阅读时间需要 6 分钟。
5日晚,apache官方发布公告称, 。发布通告不到一天,又更新了受影响版本的范围,增加了Struts 2.12 - Struts 2.3.33 ,此外还有Struts 2.5 - Struts 2.5.12。请尽快升级到 Struts 2.5.13 ,官方通告中称
Struts2在使用带有 XStream 处理程序的 Struts REST 插件,处理 XML 有效负载时,可能发生远程代码执行攻击
绿盟科技随即发布发布预警通告(见本文后半部分),并给出CVE-2017-9805(s2-052漏洞)免费在线扫描工具
update: 绿盟科技已经发布了 (
http://toutiao.secjia.com/struts2-cve-2017-9805-s2-052-protection
读者 | 所有Struts 2 开发者及用户 |
---|---|
漏洞影响 | Struts2在使用带有 XStream 处理程序的 Struts REST 插件,处理 XML 有效负载时,可能发生远程代码执行攻击 |
安全等级 | 严重 |
建议 | 升级到 |
受影响版本 | Struts 2.12 - Struts 2.3.33 , Struts 2.5 - Struts 2.5.12 |
报告者 | Man Yue Mo <mmo at semmle dot com> ( / Semmle). More information on the blog: |
CVE编号 | CVE-2017-9805 |
问题
REST 插件正在使用带有 XStream 实例的 XStreamHandler 进行反序列化, 而不进行任何类型筛选, 这可能导致在对 XML 有效负载进行序列处理时,执行远程代码。
解决方案
升级到 Apache Struts版本 2.5.13.
由于对可用类的应用默认限制, 一些 REST 动作可能停止工作。在这种情况下, 请调查为允许定义每个操作的类限制而引入的新接口, 这些接口是:
org.apache.struts2.rest.handler.AllowedClasses
org.apache.struts2.rest.handler.AllowedClassNames
org.apache.struts2.rest.handler.XStreamPermissionProvider
最好的选择是, 当不使用REST插件时,或仅限于服务器普通页面和 JSON时,删除 Struts REST插件
<constant name=
"struts.action.extension"
value=
"xhtml,,json"
/>
绿盟科技发布公告称,公告全文如下
2017年9月5日,Apache Struts发布最新的安全公告,Apache Struts 2.5.x的REST插件存在远程代码执行的高危漏洞,漏洞编号为 CVE-2017-9805 ( S2-052 ) 。漏洞的成因是由于使用XStreamHandler反序列化XStream实例的时候没有任何类型过滤导致远程代码执行。
相关链接如下:
https://cwiki.apache.org/confluence/display/WW/S2-052
影响版本:
Struts 2.5 - Struts 2.5.12
立即升级到Struts 2.5.13。
注意:
新版本使用的默认限制策略会导致REST的一些函数停止工作,会对一些业务造成影响,建议使用以下新的接口:
本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。
原文发布时间:2017年9月5日
本文由:apache发布,版权归属于原作者
原文链接:http://toutiao.secjia.com/struts2-rce
本文来自云栖社区合作伙伴安全加,了解相关信息可以关注安全加网站