漏洞深度分析|CVE-2023-24162 hutool XML反序列化漏洞

项目介绍

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。

Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;

Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

项目地址

https://gitee.com/dromara/hutool

漏洞概述

Hutool 中的XmlUtil.readObjectFromXml方法直接封装调用XMLDecoder.readObject解析xml数据,如果开发者未对用户输入的XML字符串进行安全检查并直接通过readObjectFromXml处理,那么攻击者通过提供恶意的XML字符串将造成任意代码执行。

影响版本

cn.hutool:hutool-core@(-∞,5.8.11]

环境搭建

直接导入5.8.11版本的hutool工具库即可

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.11</version>
        </dependency>

漏洞复现

漏洞分析

readObjectFromXml方法如下

 

通过下面代码可知,readObjectFromXml方法直接封装了java.beans.XMLDecoder#readObject

 

java.beans.XMLDecoder#readObject是java 自带的方法,其实xmldecoder反序列化的问题最早在2013年就被提出了,这里不在深究漏洞原理。理论上在JDK 1.4~JDK 11中都存在反序列化漏洞安全风险。历史上因为该方法产生了多个漏洞,如CVE-2017-3506、CVE-2017-10271、CVE-2019-2729等。

hutool组件目前被广泛使用,gitee star已有19.7k。目前hutool官方没有发布补丁,仅在注释中提示了安全隐患,因此该漏洞将长期存在,因此使用了hutool组件的开发者需要自行排查是否存在该漏洞。

但值得注意的是,使用存在漏洞的hutool组件并不会直接造成漏洞,因此不必过于惊慌。只有直接使用readObjectFromXml方法来处理用户提交的数据才会导致代码执行。

修复方式

官方暂未发布补丁,如果直接使用readObjectFromXml方法来处理用户提交的数据,建议用户对输入的XML数据添加安全校验

参考链接

https://nvd.nist.gov/vuln/detail/CVE-2023-24162

https://gitee.com/dromara/hutool/issues/I6AEX2

查看更多安全漏洞:快速查询安全漏洞 | 柒巧板 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值