这个漏洞是由于 MySQL JDBC 8.0.27 版本之前,存在 getSource() 方法未对传入的 XML 数据做校验,导致攻击者可以在 XML 数据中引入外部实体,造成 XXE 攻击。

getSource 方法,判断当 clazz 是 DOMSource 类型时,使用 DocumentBuilder 解析 XML 数据:

fix: 在 MySQL JDBC 8.0.27 版本开始设置了安全属性,在对象实例化之前做了校验: