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

img

报告编号: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 (新类[ ] {的java 。郎。的ProcessBuilder 。类 } ); 
xstream 。denyTypesByRegExp (new String [ ] {  “。* \\。ReadAllStream \\ $ FileStream”  } );

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

xstream 。denyTypes (new String [ ] {  “ javax.imageio.ImageIO $ ContainsFilter” , “ jdk.nashorn.internal.objects.NativeString”  } );
xstream 。denyTypes (新类[ ] {的java 。郎。的ProcessBuilder 。类, java的。豆类。事件处理程序。类, java的。郎。的ProcessBuilder 。类, java 。郎。虚空。上课, 无效。类 } ); 
xstream 。denyTypesByRegExp (new String [ ] {  “。* \\ $ LazyIterator” , “ javax \\。crypto \\ .. *” , “。* \\。ReadAllStream \\ $ FileStream”  } ));

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

xstream 。registerConverter (新的转换器() {
  公共 布尔 canConvert (类类型) { 
|类型。的getName ()。等号(“javax.imageio.ImageIO中的$ ContainsFilter” )|类型。的getName ()。等号(“jdk.nashorn.internal。 objects.NativeString” )|  | 
|类型= = java的。郎。虚空。类| 无效的。类| 代理人。isProxy (类型)| 
| 类型。getName ()。startsWith (“ javax.crypto。” )| 类型。getName ()。endsWith (“ $ LazyIterator” )| 类型。getName ()。结尾于(“ .ReadAllStream $ FileStream” ))); | 
  }


  公共对象解组( HierarchicalStreamReader阅读器, UnmarshallingContext上下文) {
    引发 新的ConversionException (“由于安全原因,不支持的类型。” );
  } 


  public  void  marshal (对象源, HierarchicalStreamWriter作者, MarshallingContext上下文) {
    引发 新的ConversionException (“由于安全原因,不支持的类型。” );
  } 
} , 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,并附上您的公司名称,姓名,手机号,地区,邮箱地址。

图片

转载自https://mp.weixin.qq.com/s/DkSt4U_C9ZnMxPd5y8aBtg

admin-r꯭o꯭ot꯭ 系统安全 web安全 安全架构
个人公众号:爱国小白帽
推送技术原创及好用的安全工具
因为我也是小白所以文章没啥深度,很适合小白学习,有问题可以一起探讨哦
相关推荐