欢迎user
新华三攻防实验室
2021/08/23
XStream是一个简单、易用的Java类库,主要用于在Java对象和XML之间进行序列化和反序列化,支持所有的基础类型、数组及集合等类型,在进行JavaBean序列化或XML文件反序列化时,不需要其它辅助类和映射文件,使得XML序列化更简便。XStream也可以将JavaBean序列化成Json或反序列化,使用非常方便。近日,新华三攻防实验室威胁预警团队监测到XStream官方发布了安全公告,公开了XStream中的14个安全漏洞,其中包括10个远程代码执行漏洞,1个远程命令执行漏洞,1个拒绝服务漏洞,2个服务端请求伪造漏洞,并进行了跟踪和分析。
XStream中存在反序列化漏洞,在反序列化处理的数据流中,若包含用于重新创建以前写入对象的类型信息,则可基于这些类型信息创建新的实例。远程攻击者通过替换处理后的输入流或在其中注入对象,构造恶意的XML或JSON等文档,从而造成拒绝服务、SSRF、远程执行任意命令或代码。
目前该漏洞利用代码已公开,建议受影响用户尽快采取相关防护措施,以防造成损失。
编号 | 漏洞类型 | 漏洞危害 |
CVE-2021-39139 | 任意代码执行 | 远程攻击者可通过操纵已处理的输入流,并替换或注入对象,利用该漏洞从远程主机加载和执行任意代码。 |
CVE-2021-39140 | 拒绝服务(DoS) | 远程攻击者可以通过操纵已处理的输入流,并替换或注入一个可控的对象,利用该漏洞造成无限循环,导致目标系统上CPU被占满,从而导致拒绝服务。 |
CVE-2021-39141 | 任意代码执行 | 远程攻击者可通过操纵已处理的输入流,构造特制的XML数据绕过XStream黑名单限制,利用该漏洞从远程主机加载和执行任意代码。 |
CVE-2021-39144 | 远程命令执行 | 远程攻击者可通过操纵已处理的输入流,构造特制的XML数据绕过XStream黑名单限制,利用该漏洞在服务器上执行本地命令。 |
CVE-2021-39145 | 任意代码执行 | 远程攻击者可通过操纵已处理的输入流,构造特制的XML数据绕过XStream黑名单限制,利用该漏洞从远程主机加载和执行任意代码。 |
CVE-2021-39146 | 任意代码执行 | 远程攻击者可通过操纵已处理的输入流,构造特制的XML数据绕过XStream黑名单限制,利用该漏洞从远程主机加载和执行任意代码。 |
CVE-2021-39147 | 任意代码执行 | 远程攻击者可通过操纵已处理的输入流,构造特制的XML数据绕过XStream黑名单限制,利用该漏洞从远程主机加载和执行任意代码。 |
CVE-2021-39148 | 任意代码执行 | 远程攻击者可通过操纵已处理的输入流,构造特制的XML数据绕过XStream黑名单限制,利用该漏洞从远程主机加载和执行任意代码。 |
CVE-2021-39149 | 任意代码执行 | 远程攻击者可通过操纵已处理的输入流,并替换或注入对象,利用该漏洞执行任意代码。 |
CVE-2021-39150 | 服务端请求伪造(SSRF) | 远程攻击者可通过操纵已处理的输入流,并替换或注入对象,利用该漏洞构造内部请求获取非公开的资源数据。 |
CVE-2021-39151 | 任意代码执行 | 远程攻击者可通过操纵已处理的输入流,并替换或注入对象,利用该漏洞执行任意代码。 |
CVE-2021-39152 | 服务端请求伪造(SSRF) | 远程攻击者可通过操纵已处理的输入流,并替换或注入对象,利用该漏洞构造内部请求获取非公开的资源数据。 |
CVE-2021-39153 | 任意代码执行 | 远程攻击者可通过操纵已处理的输入流,并替换或注入对象,利用该漏洞执行任意代码。 |
CVE-2021-39154 | 任意代码执行 | 远程攻击者可通过操纵已处理的输入流,并替换或注入对象,利用该漏洞执行任意代码。 |
1)搭建漏洞环境,复现上述部分漏洞如下。
XStream <= 1.4.17
高危
1、XStream官方已在新版本中修复该漏洞,请升级至XStream 1.4.18及以上版本,下载链接:http://x-stream.github.io/download.html
1、若受影响用户暂时无法升级,可采用官方提供的临时缓解方案:https://x-stream.github.io/security.html#example
XStream xstream = new XStream();
// clear out existing permissions and start a whitelist
xstream.addPermission(NoTypePermission.NONE);
// allow some basics
xstream.addPermission(NullPermission.NULL);
xstream.addPermission(PrimitiveTypePermission.PRIMITIVES);
xstream.allowTypeHierarchy(Collection.class);
// allow any type from the same package
xstream.allowTypesByWildcard(new String[] {
Blog.class.getPackage().getName()+".*"
});
1、H3C安全设备防护方案
新华三IPS规则库将在1.0.145版本支持对该漏洞的识别,H3C全系安全产品可通过升级IPS特征库识别该漏洞的攻击流量,并进行主动拦截。
2、态势感知产品解决方案
H3C态势感知产品已支持该漏洞的检测,通过信息搜集整合、数据关联分析等综合研判手段,发现网络中遭受该漏洞攻击及失陷的资产。
3、H3C云安全能力中心解决方案
H3C云安全能力中心知识库已更新该漏洞信息,可查询对应漏洞产生原理、升级补丁、修复措施等。
1、 http://x-stream.github.io/security.html