CVE-2020-26258/26259: XStream 反序列化漏洞通告

  • A+
所属分类:安全漏洞

报告编号:B6-2020-121401

报告来源:360CERT

报告作者:360CERT

更新日期:2020-12-14

0x01 漏洞简述

2020年12月14日,360CERT监测发现  XStream  发布了  XStream 反序列化漏洞  的风险通告,漏洞编号为  CVE-2020-26259,CVE-2020-26258  ,漏洞等级:高危 ,漏洞评分:8.9

在运行  XSteam  的服务上,未授权的远程攻击者通过  构造特定的序列化数据  ,可造成  任意文件删除 / 服务端请求伪造  。

目前该漏洞的POC已经公开

对此,360CERT建议广大用户及时将  XStream  升级到最新版本。与此同时,请做好资产自查以及预防工作,以免遭受黑客攻击。

0x02 风险等级

360CERT对该漏洞的评定结果如下

评定方式 等级
威胁等级 高危
影响面 广泛
360CERT评分 8.9

0x03 漏洞详情

CVE-2020-26259: 任意文件删除漏洞

只要(运行  XStream  服务的)进程有足够的权限,那么当  XStream  在反序列化数据时,攻击者构造特定的  XML/JSON  请求,可以造成任意文件删除。

CVE-2020-26258: 服务端请求伪造漏洞

运行  XStream  的服务在反序列化数据时,攻击者构造特定的  XML/JSON  请求,可以造成服务端请求伪造。

0x04 影响版本

- XStream:XStream : <=1.4.14

0x05 修复建议

通用修补建议

升级至  1.4.15  版本,下载链接为:

https://x-stream.github.io/changes.html#1.4.15

https://x-stream.github.io/changes.html#1.4.15

临时修补建议

低于  1.4.15  的不同版本用户可以按照以下代码设置黑名单:

- 使用  XStream 1.4.14  的用户,只需在  XStream  的设置代码中添加两行即可:

xstream.denyTypes(new String[]{ "jdk.nashorn.internal.objects.NativeString" });
xstream.denyTypesByRegExp(new String[]{ ".*\.ReadAllStream\$FileStream" });

- 使用  XStream 1.4.13  的用户,只需在XStream的设置代码中添加三行代码即可:

xstream.denyTypes(new String[]{ "javax.imageio.ImageIO$ContainsFilter", "jdk.nashorn.internal.objects.NativeString" });
xstream.denyTypes(new Class[]{ java.lang.ProcessBuilder.class });
xstream.denyTypesByRegExp(new String[]{ ".*\.ReadAllStream\$FileStream" });

- 使用  XStream 1.4.7  到  1.4.12  的用户,需要设置多个黑名单:

xstream.denyTypes(new String[]{ "javax.imageio.ImageIO$ContainsFilter", "jdk.nashorn.internal.objects.NativeString" });
xstream.denyTypes(new Class[]{ java.lang.ProcessBuilder.class, java.beans.EventHandler.class, java.lang.ProcessBuilder.class, java.lang.Void.class, void.class });
xstream.denyTypesByRegExp(new String[]{ ".*\$LazyIterator", "javax\.crypto\..*", ".*\.ReadAllStream\$FileStream" });

- 使用  XStream 1.4.6  或更低版本的用户可以注册自己的  Converter  ,以防止反序列化当前已知的有危害的  Java  类型。

xstream.registerConverter(new Converter() {
public boolean canConvert(Class type) {
|type.getName().equals("javax.imageio.ImageIO$ContainsFilter")|type.getName().equals("jdk.nashorn.internal.objects.NativeString")| |
|type == java.lang.Void.class|void.class|Proxy.isProxy(type)|
|type.getName().startsWith("javax.crypto.")|type.getName().endsWith("$LazyIterator")|type.getName().endsWith(".ReadAllStream$FileStream"));|
}


public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
throw new ConversionException("Unsupported type due to security reasons.");
}


public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) {
throw new ConversionException("Unsupported type due to security reasons.");
}
}, XStream.PRIORITY_LOW);

0x06 时间线

2020-12-13 XStream官方发布通告

2020-12-14 360CERT发布通告

0x07 参考链接

1、 CVE-2020-26258 官方漏洞通告

http://x-stream.github.io/CVE-2020-26258.html

2、 CVE-2020-26259 官方漏洞通告

http://x-stream.github.io/CVE-2020-26259.html

0x08 特制报告下载链接

一直以来,360CERT对全球重要网络安全事件进行快速通报、应急响应。为更好地为政企用户提供最新漏洞以及信息安全事件的安全通告服务,现360CERT正式推出安全通告特制版报告,以便用户做资料留存、传阅研究与查询验证。用户可直接通过以下链接进行特制报告的下载。

CVE-2020-26258/26259: XStream 反序列化漏洞通告

http://pub-shbt.s3.360.cn/cert-public-file/【360CERT】CVE-2020-26258_26259__XStream_反序列化漏洞通告.pdf

若有订阅意向与定制需求请扫描下方二维码进行信息填写,或发送邮件至g-cert-report#360.cn ,并附上您的 公司名、姓名、手机号、地区、邮箱地址。


CVE-2020-26258/26259: XStream 反序列化漏洞通告

CVE-2020-26258/26259: XStream 反序列化漏洞通告推荐阅读:

1、安全运营周刊第十九期

2、2020-12 补丁日: 微软多个高危漏洞通告

3、CVE-2020-1971: OpenSSL 拒绝服务漏洞通告

长按下方二维码关注360CERT!谢谢你的关注!

CVE-2020-26258/26259: XStream 反序列化漏洞通告

注:360CERT官方网站提供 《CVE-2020-26258/26259: XStream 反序列化漏洞通告》 完整详情,点击阅读原文

本文始发于微信公众号(三六零CERT):CVE-2020-26258/26259: XStream 反序列化漏洞通告

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: