IPBUF安全漏洞报告
English
CVE-2026-34601 CVSS 7.5 高危

CVE-2026-34601 xmldom XML注入漏洞

披露日期: 2026-04-02

漏洞信息

漏洞编号
CVE-2026-34601
漏洞类型
XML注入
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
xmldom, @xmldom/xmldom

相关标签

XML注入xmldomJavaScript数据完整性CVE-2026-34601

漏洞概述

xmldom是一款纯JavaScript的XML解析库。在受影响版本中,该库未能正确处理CDATA节点中的终止符']]>'。攻击者可利用此漏洞将精心构造的字符串注入CDATA部分,导致在序列化时原本应作为纯文本的数据被解析为XML标记。这使得攻击者能够注入XML结构,操纵下游业务逻辑,造成数据完整性风险。

技术细节

漏洞的核心在于xmldom库的XMLSerializer模块对CDATASection节点的序列化处理缺乏安全验证。当攻击者输入包含CDATA终止序列']]>'的字符串时,xmldom允许其被完整插入到CDATA节点中。在后续的序列化过程中,库直接输出该内容而未进行转义或分割,导致']]>'提前闭合了CDATA块。其后的内容被解析器视为有效的XML元素,从而允许攻击者注入恶意标签或修改文档结构。由于CVSS评分为7.5(HIGH),且完整性影响为高,该漏洞可能被用于篡改关键数据或绕过安全检查。

攻击链分析

STEP 1
步骤1:侦察
攻击者识别目标应用程序使用了易受攻击的xmldom或@xmldom/xmldom库版本处理XML数据。
STEP 2
步骤2:载荷构造
攻击者构造包含CDATA结束标记']]>'及恶意XML代码的Payload字符串。
STEP 3
步骤3:注入
攻击者通过应用程序的输入接口(如API参数、文件上传等)提交Payload,该数据被应用放入CDATA节点。
STEP 4
步骤4:序列化与解析
应用程序使用XMLSerializer对DOM对象进行序列化,由于未过滤']]>',恶意内容逃逸CDATA块并被下游XML解析器执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const { DOMParser, XMLSerializer } = require('@xmldom/xmldom'); const parser = new DOMParser(); const serializer = new XMLSerializer(); // Malicious payload containing CDATA terminator const payload = ']]><injected-tag>malicious_content</injected-tag>'; const doc = parser.parseFromString('<root></root>', 'text/xml'); const cdata = doc.createCDATASection(payload); doc.documentElement.appendChild(cdata); // Serialize to string const output = serializer.serializeToString(doc); console.log(output); // Result: <root><![CDATA[]]><injected-tag>malicious_content</injected-tag>]]></root> // The injected tag breaks out of the CDATA section.

影响范围

xmldom < 0.6.0
@xmldom/xmldom < 0.8.12
@xmldom/xmldom < 0.9.9

防御指南

临时缓解措施
如果无法立即升级,应在业务逻辑层面对所有输入数据进行清洗,移除或转义']]>'字符序列。同时,避免将不可信的用户输入直接放置在CDATA节点中,改用其他方式存储文本数据。

参考链接

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