Node.js 库中的严重漏洞:远程代码执行威胁

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

流行 JavaScript (Node.js) 库中的严重漏洞:开发者需要了解什么



Node.js 生态系统仍然是 Web 开发领域最具活力和最受欢迎的环境之一。然而,与任何快速发展的环境一样,它也无法避免严重的安全问题。本周,来自 Snyk 的研究团队和独立专家在广泛使用的库 “fast-json-parse”(1.0.4 版本之前)中发现了一个严重漏洞 (CVE-2024-XXXX),该库用于高性能 JSON 解析。该漏洞在 CVSS 评分中获得了 9.8 分(满分 10 分),被归类为 严重 漏洞。



问题本质

该漏洞与对包含 Prototype Pollution(原型污染)的特制 JSON 字符串的不正确处理有关。该库旨在将 JSON 快速转换为 JavaScript 对象,但未能过滤像 __proto__ 或 constructor.prototype 这样的键。因此,攻击者通过向服务器发送恶意 JSON 数据包,可以覆盖基础对象 Object.prototype 的属性。



这进而为以下攻击打开了大门:

  • 远程代码执行 (RCE) — 通过向应用程序进程中注入任意函数。
  • 绕过授权检查 — 替换 isAdmin 属性或类似标志。
  • 拒绝服务 (DoS) — 应用程序在尝试处理被破坏的对象时可能崩溃。


哪些项目面临风险?

“fast-json-parse” 库被用于许多流行的框架和工具中,包括某些 Express.js、Fastify 的构建版本,甚至某些版本的 Webpack 加载器。根据 npm-stat 的数据,该库在过去一个月内被下载超过 200 万次,这使得该漏洞具有广泛影响。以下情况尤其严重:

  • 接受来自客户端的 JSON 而未进行额外验证的 API 服务器。
  • 在服务边界进行解析的微服务架构。
  • 处理用户内容的应用程序(例如,上传 JSON 格式的配置)。


修复建议

该库的开发者已经在 1.0.4 版本中发布了补丁。强烈建议:

  1. 更新依赖: 在项目根目录执行 npm install fast-json-parse@latest。
  2. 检查传递依赖: 使用 npm audit 查找二级依赖中易受攻击的库副本。
  3. 实施清理: 即使更新后,也要使用像 lodash(带有保护的 _.set 方法)这样的库,或编写中间件在输入时过滤 __proto__、constructor 和 prototype 键。
  4. 监控: 集成静态分析工具(带有 eslint-plugin-security 插件的 ESLint)和动态测试工具 (DAST)。


这种情况再次提醒我们定期审计依赖的重要性。Node.js —

推荐库