基本信息
风险等级:高危
漏洞类型:拒绝服务漏洞
漏洞编号:
CVE-2022-41966
漏洞描述
近日,飓风安全应急团队监测到XStream发布安全公告,修复了一个存在于XStream中的拒绝服务漏洞,XStream在将XML反序列化为对象时存在堆栈溢出,未经身份验证的远程攻击者通过操纵输入流来替换或注入对象,使XStream在递归散列计算时触发堆栈溢出,导致拒绝服务。
【受影响版本】
-
XStream < 1.4.20
【安全版本】
-
XStream >= 1.4.20
XStream是一个Java对象和XML相互转换的工具,用来将对象序列化成XML(JSON)或将XML反序列化为对象,并提供所有的基础类型、数组、集合等类型直接转换的支持。
影响范围
XStream < 1.4.20
解决方案
临时修复建议:
1.在调用XStream的代码中捕获StackOverflowError 异常
2.如果对象图不引用任何元素,可以设置为NO_REFERENCE模式:
XStream xstream = new XStream();
xstream.setMode(XStream.NO_REFERENCES);
3.如果对象图既不包含Hashtable、HashMap也不包含 HashSet(或它其他变种),那么可以使用安全框架来拒绝使用这些类型:
XStream xstream = new XStream();
xstream.denyTypes(new Class[]{
java.util.HashMap.class, java.util.HashSet.class, java.util.Hashtable.class, java.util.LinkedHashMap.class, java.util.LinkedHashSet.class
});
4.可更新反序列化时 java.util.Map和java.util.Set的默认实现:
xstream.addDefaultImplementation(java.util.TreeMap.class,java.util.Map.class);
xstream.addDefaultImplementation(java.util.TreeSet.class,java.util.Set.class);
通用修复建议:
官方已经针对漏洞发布了版本更新,下载地址如下:
-
https://x-stream.github.io/download.html
原文始发于微信公众号(飓风网络安全):XStream 拒绝服务漏洞 (CVE-2022-41966)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论