Anonymous Intelligence Signal

fast-xml-parser 5.3.8 前版本存在栈溢出漏洞,特定配置可致应用崩溃

human The Lab unverified 2026-04-02 01:26:54 Source: GitHub Issues

流行的 Node.js XML 解析库 `fast-xml-parser` 被曝存在一个栈溢出漏洞,当使用其 XML 构建器并启用 `preserveOrder: true` 配置时,处理特定嵌套结构的输入数据会导致应用程序崩溃。该漏洞源于 `arrToStr` 函数未能正确验证输入类型,将非数组值一律视为文本内容处理,从而在递归过程中耗尽调用栈。尽管其 CVSS 评分为 0 分,被标记为“低”严重性,但它直接威胁到依赖此库进行 XML 处理的应用程序的稳定性和可用性。

漏洞影响所有低于 5.3.8 版本的 `fast-xml-parser` 包。触发条件相对明确:开发者必须使用库的 XML 构建器功能,并设置 `preserveOrder` 选项为 `true`。当传入类似 `[{ 'foo': [ { 'bar': [{ '@_V': 'baz' }] } ] }]` 的特定嵌套对象数组时,就会引发栈溢出错误。这并非一个远程代码执行漏洞,但其导致的意外崩溃可能中断服务流程,对生产环境构成风险。

维护者已在 GitHub 上发布了修复补丁,并强烈建议所有用户立即升级到版本 5.3.8 或更高版本。对于无法立即升级的项目,提供了两个临时解决方案:一是将 XML 构建器的 `preserveOrder` 选项设置为 `false`;二是在将数据传递给构建器之前,对输入数据进行严格的验证和检查。该修复已通过拉取请求 #791 合并,相关安全公告也已发布,提醒开发社区关注这一潜在的服务中断风险。