En

[TPSA21-38] 腾讯蓝军安全通告:XStream修复14个安全漏洞

公告编号:TPSA21-38公告来源:TSRC发布日期:2021-08-23

分享

文|腾讯蓝军

1、漏洞概述:

近日XStream官方发布重要安全更新,修复了14个安全漏洞,其中5个严重漏洞由TSRC向XStream官方报告,通过这些漏洞,攻击者构造特定的XML数据,可以绕过XStream的黑名单拦截,最终仅需依赖JDK库即可触发反序列化造成任意代码执行。

TSRC与XStream维护者多次探讨黑名单过滤修复方案的缺陷,目前XStream官方已将1.4.18版本修改成白名单过滤方式,建议大家及时更新到最新版以规避历史安全漏洞。

2、时间线:

2021/05
三位TSRC白帽子在研究XStream安全漏洞时,陆续发现存在多个黑名单绕过,随后立即向TSRC报告漏洞细节
2021/05
TSRC第一时间复现漏洞后,立即代白帽子们向XStream官方提交报告
2021/05
XStream官方确认漏洞报告
2021/05
鉴于黑名单存在持续被绕过的风险,TSRC与XStream维护者多次探讨黑名单过滤修复方案的缺陷后,XStream修改成白名单过滤方式
2021/08/22
XStream官方发布重要安全更新,修复14个安全漏洞,其中包含由TSRC上报的5个严重漏洞(CVE-2021-39141、CVE-2021-39144、CVE-2021-39146、CVE-2021-39147、CVE-2021-39148)
2021/08/23
TSRC发布安全通告

3、影响情况:

影响版本:version <= 1.4.17
安全版本:version = 1.4.18

4、自查方法:

XStream是一种用来处理XML文件序列化库,可以排查项目的jar文件或者依赖配置文件中XStream的版本,如果小于等于1.4.17则说明受影响。

5、漏洞利用:

6、修复方案:

1)、升级到最新版本-1.4.18

https://x-stream.github.io/news.html

历史上XStream多次出现严重漏洞,仅依赖JDK库绕过黑名单就有多例,依赖第三方库进行绕过黑名单的方法更多,而且新的反序列化攻击链不断被挖掘出来,黑名单不断被绕过,建议务必升级到默认采用白名单过滤方式的最新版本。

2)、低版本的缓解方案

如果由于业务特殊情况无法升级到最新版本,低版本可使用以下缓解方案进行加固
https://x-stream.github.io/security.html#example

修复代码样例:

  1. import com.thoughtworks.xstream.XStream;
  2. import com.thoughtworks.xstream.security.NoTypePermission;
  3. import com.thoughtworks.xstream.security.NullPermission;
  4. import com.thoughtworks.xstream.security.PrimitiveTypePermission;
  5. import java.io.File;
  6. import java.io.FileOutputStream;
  7. public class Test {
  8. public static void main(String[] args) throws Exception {
  9. XStream xstream = new XStream();
  10. xstream.toXML(new People("test",11),new FileOutputStream(new File("/tmp/peoplexml")));
  11. // 不允许白名单
  12. xstream.addPermission(NoTypePermission.NONE);
  13. // 允许基础类
  14. xstream.addPermission(NullPermission.NULL);
  15. xstream.addPermission(PrimitiveTypePermission.PRIMITIVES);
  16. // 允许业务类
  17. xstream.allowTypeHierarchy(People.class);
  18. People people = (People) xstream.fromXML(new File("/tmp/peoplexml"));
  19. System.out.println(people.name); //打印 test
  20. }
  21. }

目前腾讯的流量、主机、扫描器等安全系统已具备检测防护能力。

7、致谢

感谢白帽子Ceclin、yxxx、wh1t3Pig报告安全风险,也感谢XStream官方采用默认安全的白名单方案,一起为互联网安全作出贡献。

关于腾讯蓝军

腾讯蓝军(Tencent Force)由腾讯TEG安全平台部于2006年组建,十余年专注前沿安全攻防技术研究、实战演练、渗透测试、安全评估、培训赋能等,采用APT攻击者视角在真实网络环境开展实战演习,全方位检验安全防护策略、响应机制的充分性与有效性,最大程度发现业务系统的潜在安全风险,并推动优化提升,助力企业领先于攻击者,防患于未然。