购物车

您的购物车目前是空的

商品分类
  1. 嘶货 首页
  2. 企业动态

漏洞深度分析|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工具库即可   

漏洞复现

image.gif

漏洞分析

readObjectFromXml方法如下

image.gif

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

image.gif

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

联系我们

010-62029792

在线咨询: 点击这里给我发消息

电子邮箱:info@4hou.com

工作时间:09:00 ~ 18:00