Protobuf库中严重漏洞可导致JavaScript代码执行

admin 2026-04-21 00:48:55 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Protobuf.js库因不安全的动态代码生成存在严重RCE漏洞,攻击者可通过恶意模式注入代码实现远程执行。该库周下载量近5000万次,影响8.0.0/7.5.4及以下版本,建议立即升级至8.0.1/7.5.5版本。补丁通过清理类型名称字符防御攻击,长期解决方案应避免将用户输入传递给Function构造函数。管理员需审计依赖项并将模式加载视为不可信输入。 综合评分: 85 文章分类: 漏洞分析,供应链安全,解决方案,安全工具,漏洞预警


cover_image

Protobuf 库中严重漏洞可导致 JavaScript 代码执行

Bill Toulas Bill Toulas

代码卫士

2026年4月20日 18:13 北京

在小说阅读器读本章

去阅读

  聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士

谷歌 Protocol Buffers 广为使用的 JavaScript 实现 protobuf.js 中存在一个严重的远程代码执行 (RCE) 漏洞,目前尚无编号。

Protobuf.js 在 npm 注册表中热度非常高,周下载量近5000万次,用于服务间通信、实时应用程序以及在数据库和云环境中高效存储结构化数据。Endor Labs 在周五发布的一份报告中表示,该漏洞由不安全的动态代码生成引起。

该漏洞尚未获得官方 CVE 编号,目前以 GitHub 分配的标识符 GHSA-xq3m-2v4x-88gg 进行追踪。Endor Labs 解释称,该库通过拼接字符串的方式从 protobuf 模式构建 JavaScript 函数,并使用 Function() 构造函数执行这些函数,但未能对从模式中提取的标识符(例如消息名称)进行验证。

这使得攻击者能够提供恶意模式,将任意代码注入到生成的函数中。当应用程序使用该模式处理消息时,注入的代码便会执行。这就使攻击者能够在加载受攻击者影响的模式的服务器或应用程序上实现远程代码执行,从而获取环境变量、凭据、数据库和内部系统的访问权限,甚至在基础设施内横向移动。

如果开发者在本地加载并解码不可信的模式,该攻击也可能影响开发者的计算机。该漏洞影响 protobuf.js 8.0.0 / 7.5.4 及更低版本。Endor Labs 建议升级到修复了该问题的 8.0.1 和 7.5.5 版本。补丁通过剥离非字母数字字符来清理类型名称,从而防止攻击者闭合合成函数。不过,Endor 评论称,更长期的修复方案应是彻底停止将攻击者可触及的标识符通过 Function 进行往返传递。

Endor Labs 警告称,“该漏洞的利用方式非常直接”,安全公告中包含的最小化概念验证代码也反映了这一点。不过,截至目前尚未观察到该漏洞遭在野利用的证据。

该漏洞由 Endor Labs 研究员、安全漏洞赏金猎人 Cristian Staicu 于 3 月 2 日报告,protobuf.js 维护者于 3 月 11 日在 GitHub 上发布了补丁。针对 npm 软件包的修复于 4 月 4 日在 8.x 分支上提供,4 月 15 日在 7.x 分支上提供。

除了升级到已打补丁的版本外,Endor Labs 还建议系统管理员审计传递依赖项,将模式加载视为不可信输入,并在生产环境中优先使用预编译/静态模式。

开源卫士试用地址:https://oss.qianxin.com/#/login

代码卫士试用地址:https://sast.qianxin.com/#/login


推荐阅读

Axios 严重漏洞可导致 RCE

热门包管理器中存在多个漏洞,JavaScript 生态系统易受供应链攻击

热门JavaScript 加密库 Forge 修复签名验证绕过漏洞

Marimo 高危预认证 RCE 漏洞已遭活跃利用

原文链接

https://www.bleepingcomputer.com/news/security/critical-flaw-in-protobuf-library-enables-javascript-code-execution/

题图:Pixabay License

本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。

    觉得不错,就点个 “在看” 或 “赞” 吧~


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:代码卫士 Bill Toulas Bill Toulas《Protobuf 库中严重漏洞可导致 JavaScript 代码执行》

评论:0   参与:  0