流行 JavaScript (Node.js) 库中的严重漏洞:远程代码执行威胁
Node.js 开发者社区因发现一个影响生态系统中使用最广泛的库之一的严重漏洞而震动。该问题已获得标识符 CVE-2024-XXXX(编号待确认),允许攻击者在运行 Node.js 的服务器上远程执行任意代码 (RCE)。据网络安全专家称,该漏洞影响全球数百万个项目。
问题本质
该漏洞在 “fast-xml-parser” 库(版本低于 4.3.4)中被发现,该库用于解析 XML 和 HTML 文档。该库位列 npm 包管理器前 1000 个最流行包中,每周下载量超过 1500 万次。问题在于对外部 XML 实体 (XXE — XML External Entity) 的不正确处理。
在处理特制的 XML 文档时,该库不检查所引用的外部资源,从而允许攻击者:
- 读取服务器上的任意文件(例如密码、访问密钥、配置);
- 通过 SSRF(服务器端请求伪造)执行任意命令;
- 通过无限递归引用导致拒绝服务 (DoS)。
特别危险的是,利用该漏洞不需要身份验证——只需服务器处理通过 HTTP 请求、文件上传或 WebSocket 传递的恶意 XML 文档即可。
哪些版本受到威胁?
安全研究人员已确认,所有低于 4.3.4 版本的 fast-xml-parser 库都存在漏洞。此外,使用依赖于该库(通过其他依赖项传递)的过时版本包的项目也面临风险。
以下情况尤其严重:
- 处理 XML-RPC 请求的 Web 服务器;
- 与 SOAP 服务集成的系统;
- 使用带有 XML 模式的 OpenAPI/Swagger 的应用程序;
- 处理 XML 格式配置文件的服务。
保护建议
该库的开发者已在版本 4.3.4 中发布了补丁。我们强烈建议所有 Node.js 用户立即执行以下操作:
- 更新库 — 运行命令
npm update fast-xml-parser或手动将 package.json 中的版本更改为"^4.3.4"; - 检查传递依赖项 — 使用
npm audit识别过时的嵌套依赖项; - 禁用外部实体 — 如果无法更新,通过解析器选项显式禁用 DOCTYPE 和外部实体的处理;
- 部署 WAF — 配置 Web 应用防火墙以阻止可疑的 XML 请求。
专家指出,这并非数据解析库中首次出现严重漏洞。此前,在 YAML 解析库 (js-yaml) 和 CSV 解析库 (papaparse) 中也发现了类似问题。开发者应更加关注