【开源组件系列】CVE-2022-0265 Java开源组件安全之Hazelcast XXE漏洞

admin 2022年4月20日08:36:37评论198 views字数 958阅读3分11秒阅读模式
漏洞信息


Hazelcast是一套可扩展的开源数据分发平台。在上一篇文章中:


CVE-2022-26133 Atlassian Bitbucket Data Center反序列化漏洞

QCyber,公众号:且听安全【最新漏洞预警】CVE-2022-26133 Atlassian Bitbucket Data Center反序列化漏洞


利用Hazelcast接口反序列化漏洞实现了Bitbucket Data Center RCE。分析完漏洞之后,我对Hazelcast分发平台产生了兴趣,通过进一步研究,顺手复现了今年爆出的一个XXE漏洞,通报如下:



【开源组件系列】CVE-2022-0265 Java开源组件安全之Hazelcast XXE漏洞


漏洞分析



引入`5.1-BETA-1`版本jar包。漏洞触发点位于`AbstractXmlConfigRootTagRecognizer`:


【开源组件系列】CVE-2022-0265 Java开源组件安全之Hazelcast XXE漏洞


构造函数通过`SAXParserFactory`实例化xml解析对象`saxParser`,然后在函数`isRecognized`中调用`parse`完成xml解析,没有任何限制,这是一个非常典型的XXE漏洞。


搜索`AbstractXmlConfigRootTagRecognizer#isRecognized`函数被调用情况,发现在Hazelcast配置类`com.hazelcast.config.Config`中用于加载配置的函数`loadFromStream`存在对`isRecognized`的调用:


【开源组件系列】CVE-2022-0265 Java开源组件安全之Hazelcast XXE漏洞


当我们通过`loadFromString`函数加载Hazelcast配置,并且配置内容可控时,将导致出现XXE漏洞。


漏洞复现


构造如下Hazelcast启动代码:


【开源组件系列】CVE-2022-0265 Java开源组件安全之Hazelcast XXE漏洞


启动:


【开源组件系列】CVE-2022-0265 Java开源组件安全之Hazelcast XXE漏洞


触发XXE:


【开源组件系列】CVE-2022-0265 Java开源组件安全之Hazelcast XXE漏洞


调用栈如下:


【开源组件系列】CVE-2022-0265 Java开源组件安全之Hazelcast XXE漏洞


修复方式


【开源组件系列】CVE-2022-0265 Java开源组件安全之Hazelcast XXE漏洞


修改`SAXParserFactory`对象实例化方式为`XmlUtil.getSAXParserFactory`:


【开源组件系列】CVE-2022-0265 Java开源组件安全之Hazelcast XXE漏洞


添加了安全配置:


setFeature(dbf, "http://apache.org/xml/features/disallow-doctype-decl");



由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全团队及文章作者不为此承担任何责任。



【开源组件系列】CVE-2022-0265 Java开源组件安全之Hazelcast XXE漏洞


点关注,不迷路!

【开源组件系列】CVE-2022-0265 Java开源组件安全之Hazelcast XXE漏洞

原文始发于微信公众号(且听安全):【开源组件系列】CVE-2022-0265 Java开源组件安全之Hazelcast XXE漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月20日08:36:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【开源组件系列】CVE-2022-0265 Java开源组件安全之Hazelcast XXE漏洞http://cn-sec.com/archives/928821.html

发表评论

匿名网友 填写信息