【漏洞详情】
XStream是一个常用的Java对象和XML相互转换的工具。2021年5月15日 XStream官方发布安全更新,修复了多个XStream 反序列化漏洞。攻击者通过构造恶意的XML文档,可绕过XStream的黑名单,触发反序列化,从而造成 CVE-2021-29505 反序列化代码执行漏洞等。实际漏洞利用依赖于具体代码实现以及相关接口请求,无法批量远程利用。平安云安全中心提醒 XStream 用户尽快采取安全措施阻止漏洞攻击。
【风险评级】
高危
【影响范围】
XStream < 1.4.17
【修复建议】
1、Xstream官方的修复建议《关于解决安全漏洞修复建议》
官方补丁或更新程序的下载地址:http://x-stream.github.io/download.html
2、临时缓解措施:
如因服务无法升级或重启、官方补丁无效、无法更新官方补丁等原因造成修复失败,紧急避免遭受漏洞影响,请使用临时缓解措施。
1)已经根据官方提供的相关利用链,加入到waf规则,经过测试能成功拦截利用此漏洞的攻击。
1、com.sun.jndi.rmi.registry
2、com.sun.jndi.ldap.LdapBinding
3、com.sun.jndi.toolkit.dir.LazySearchEnumerationImpl
2)配置XStream的安全框架为允许的类型使用白名单,添加白名单方式参考代码如下:
XStream xstream = new XStream();
//清除默认配置,然后进行自定义白名单
xstream.addPermission(NoTypePermission.None);
//添加白名单基础类
xstream.addPermission(ArrayTypePermission.ARRAYS);
xstream.addPermission(NullPermission.NULL);
xstream.addPermission(PrimitiveTypePermission.PRIMITIVES);
//添加自定义类
xstream.addPermission(new ExplicitTypePermission(new Class[]{write.class}));
【参考链接】
http://x-stream.github.io/changes.html
特别提醒:修复漏洞前请进行充分测试,并务必做好数据备份和快照,防止出现意外。
平安云
2021年5月17日