报告编号: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.7
到 1.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