【漏洞通告】XStream 任意文件删除漏洞(CVE-2020-26258、CVE-2020-26259)

admin 2020年12月14日15:43:37评论60 views字数 3186阅读10分37秒阅读模式

漏洞名称XStream 反序列化漏洞CVE-2020-26258、CVE-2020-26259

威胁等级 : 高危

影响范围 XStream <=  1.4.14

漏洞类型 反序列化

利用难度 : 简单


漏洞分析


XStream 组件介绍

XStream是Java类库,用来将对象序列化成XML(JSON)或反序列化为对象。XStream在运行时使用Java反射机制对要进行序列化的对象树的结构进行探索,并不需要对对象作出修改。XStream可以序列化内部字段,包括私private和final字段,并且支持非公开类以及内部类。在缺省情况下,XStream不需要配置映射关系,对象和字段将映射为同名XML元素。但是当对象和字段名与XML中的元素名不同时,XStream支持指定别名。XStream支持以方法调用的方式,或是Java标注的方式指定别名。XStream在进行数据类型转换时,使用系统缺省的类型转换器。同时,也支持用户自定义的类型转换器。


2 漏洞描述

XStream官方在2020年12月份发布的最新安全补丁中披露,存在一个反序列化漏洞。XStream处理的流包含类型信息,用来重新创建以前写入的对象,因此可以基于这些类型信息创建新的实例。攻击者可以操纵处理后的输入流并替换成注入对象,从而删除服务器端的指定文件(CVE-2020-26259)。运行XStream的服务在处理反序列化数据时,攻击者构造特定的 XML/JSON 请求,可以造成服务端请求伪造(CVE-2020-26258)。


3 漏洞复现

搭建XStream 1.4.14环境,成功复现漏洞如下:

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

【漏洞通告】XStream 任意文件删除漏洞(CVE-2020-26258、CVE-2020-26259)
【漏洞通告】XStream 任意文件删除漏洞(CVE-2020-26258、CVE-2020-26259)

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

【漏洞通告】XStream 任意文件删除漏洞(CVE-2020-26258、CVE-2020-26259)
【漏洞通告】XStream 任意文件删除漏洞(CVE-2020-26258、CVE-2020-26259)


影响范围


目前受影响的XStream版本:

XStream <=  1.4.14


解决方案


1 临时修复建议

对于使用1.4.14版本的用户,在声明XStream对象之后,可以额外添加下面两行代码:

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

对于使用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" });

对于使用1.4.7-1.4.12版本的用户,在声明XStream对象之后,可以额外添加下面三行代码:

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" });

对于使用1.4.6及以下版本的用户,在声明XStream对象之后,可以额外添加如下代码:

xstream.registerConverter(new Converter() {  public boolean canConvert(Class type) {    return type != null && (type == java.beans.EventHandler.class || type == java.lang.ProcessBuilder.class        || 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);


2 官方解决方案

目前厂商已发布升级补丁修复漏洞,请受影响用户及时更新官方补丁。官方链接如下:

https://x-stream.github.io/download.html


3 深信服解决方案

深信服下一代防火墙】可轻松防御此漏洞, 建议部署深信服下一代防火墙的用户更新至最新的安全防护规则,可轻松抵御此高危风险。

深信服云盾】已第一时间从云端自动更新防护规则,云盾用户无需操作,即可轻松、快速防御此高危风险。
深信服安全感知平台】可检测利用该漏洞的攻击,实时告警,并可联动【深信服下一代防火墙等产品】实现对攻击者ip的封堵。
深信服安全运营服务】深信服云端安全专家提供7*24小时持续的安全运营服务。对存在漏洞的用户,检查并更新了客户防护设备的策略,确保客户防护设备可以防御此漏洞风险。


时间轴


2020/12/13 XStream官方发布漏洞公告

2020/12/14 深信服千里目安全实验室复现漏洞并发布漏洞通告


参考链接


https://x-stream.github.io/download.html


点击阅读原文,及时关注并登录深信服智安全平台,可轻松查询漏洞相关解决方案。

【漏洞通告】XStream 任意文件删除漏洞(CVE-2020-26258、CVE-2020-26259)


深信服千里目安全实验室

【漏洞通告】XStream 任意文件删除漏洞(CVE-2020-26258、CVE-2020-26259)

深信服科技旗下安全实验室,致力于网络安全攻防技术的研究和积累,深度洞察未知网络安全威胁,解读前沿安全技术。

● 扫码关注我们



本文始发于微信公众号(深信服千里目安全实验室):【漏洞通告】XStream 任意文件删除漏洞(CVE-2020-26258、CVE-2020-26259)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年12月14日15:43:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【漏洞通告】XStream 任意文件删除漏洞(CVE-2020-26258、CVE-2020-26259)https://cn-sec.com/archives/203456.html

发表评论

匿名网友 填写信息