CVE-2025-60833CVE-2025-60833是uzy-ssm-mall商城系统v1.1.0版本中存在的一个XML外部实体(XXE)注入漏洞。该漏洞位于系统的/mall/wxpay/pay微信支付组件中,由于该组件在处理微信支付回调通知时未对传入的XML数据进行严格的外部实体解析限制,攻击者可以通过构造恶意的XML数据,利用XML解析器对外部实体的支持来执行任意代码或读取服务器上的敏感文件。
该漏洞的CVSS 3.1评分为6.5分,属于中危级别。其攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需任何特权(PR:N),也无需用户交互(UI:N)。在影响方面,该漏洞对机密性(C:L)和完整性(I:L)均存在低程度的影响,但对可用性(A:N)没有影响。这意味着攻击者可以利用此漏洞读取服务器上的敏感配置文件、源代码或系统文件,甚至在某些配置环境下实现远程代码执行,严重威胁系统的安全性。
uzy-ssm-mall是一个基于Spring、SpringMVC、MyBatis(SSM)框架开发的开源商城系统,广泛应用于中小型电商场景。微信支付组件作为商城系统的核心功能之一,负责处理微信支付回调通知,其安全性直接关系到交易数据的完整性和用户资金的安全。该漏洞的披露时间为2025年10月8日,由ChangeYourWay发现并报告。
XXE(XML External Entity)漏洞是一种针对XML解析器的注入攻击,其根本原因在于XML解析器在解析XML文档时,默认启用了对外部实体的解析支持。攻击者通过在XML数据中定义指向外部资源的实体(如file://、http://等协议的URI),使得XML解析器在解析过程中自动加载并解析这些外部资源,从而导致敏感文件读取、SSRF(服务端请求伪造)或远程代码执行等安全问题。
在uzy-ssm-mall v1.1.0的/mall/wxpay/pay组件中,系统在接收微信支付回调通知时,会对微信服务器发送的XML格式数据进行解析。然而,该组件在创建XML解析器(如DocumentBuilderFactory)时,未禁用以下关键安全特性:
1. 未禁用外部实体解析(setFeature("http://xml.org/sax/features/external-general-entities", false))
2. 未禁用外部参数实体解析(setFeature("http://xml.org/sax/features/external-parameter-entities", false))
3. 未禁用DOCTYPE声明(setFeature("http://apache.org/xml/features/disallow-doctype-decl", true))
4. 未设置安全的XML解析属性
攻击者可以利用这些缺失的安全配置,通过微信支付回调接口提交包含恶意DTD定义的XML数据。典型的攻击payload会定义一个SYSTEM实体,指向服务器上的敏感文件(如/etc/passwd或应用配置文件),然后通过XML数据回显机制将文件内容泄露出来。在更危险的情况下,攻击者可以利用Java的Runtime.exec()或XPATH注入等方式实现远程代码执行。