首页
学习
活动
专区
圈层
工具
发布

Protocol Buffers模式漏洞曝光:六大安全缺陷可导致远程代码执行

谷歌Protocol Buffers格式的一个被广泛使用的JavaScript实现库,因对不可信数据过度信任,导致受影响的应用程序面临远程代码执行及其他攻击风险。

Cyera的研究人员披露了影响"protobuf.js"的六个漏洞,这些漏洞均源于该库对模式(schema)和元数据的处理方式存在缺陷。攻击者可利用输入验证疏漏插入恶意数据,进而影响应用程序的行为。

Protocol Buffers是一种以紧凑、结构化格式打包数据的技术,旨在简化不同应用程序之间的信息交换。protobuf.js库据报道每周下载量超过5000万次。该库通常通过gRPC工具、Google Cloud库及其他框架等依赖项被间接引入应用程序,这使得企业难以对其进行追踪。

研究人员披露的六个CVE漏洞涵盖远程代码执行、拒绝服务(DoS)、原型污染(prototype pollution)、原型注入(prototype injection)以及代码生成等问题。

Cyera研究人员Assaf Morag和Vladimir Tokarev在一篇博客文章中表示:"尽管这些漏洞的利用通常需要特定条件,但这些条件在数据和AI生态系统中越来越普遍——这些系统会在服务、代码库、云平台和第三方集成之间频繁交换数据、模式和配置文件。"

目前,protobuf.js及其命令行代码生成工具protobufjs-cli均已提供相应补丁。

其中最为严重的漏洞是编号为CVE-2026-44291的代码生成缺陷。

据Cyera介绍,protobuf.js会动态生成编码器和解码器函数,并通过JavaScript的Function()构造函数对其进行编译。在特定条件下,攻击者可操控从模式中派生的信息,使原本用于描述消息的数据转变为可执行代码。

研究人员演示了一条攻击链:通过原型污染诱使protobuf.js将攻击者控制的值识别为合法的protobuf类型,这些值随后被嵌入生成的代码中,并在Node.js进程内被执行。

其影响还延伸至运行时应用程序之外。另一个代码注入漏洞(编号CVE-2026-44295)影响pbjs命令行工具——精心构造的模式名称可被嵌入生成的JavaScript文件,并在这些文件被后续导入时触发执行。

尽管成功利用这些漏洞需要满足特定前提条件(例如能够影响protobuf的模式或描述符),但研究人员指出,现代软件日益频繁地在代码库、云环境、API和第三方集成之间交换模式、描述符和配置文件,这使得上述前提条件的限制性已大不如前。

其余漏洞的严重程度相对较低。研究人员发现了一个原型注入漏洞(CVE-2026-44292),可通过篡改继承对象属性来改变应用程序行为;此外还有三个拒绝服务漏洞(CVE-2026-44289、CVE-2026-44290和CVE-2026-44294),可利用恶意构造的输入使应用程序崩溃或耗尽其资源。

研究人员还指出,protobuf.js通常作为传递性依赖被引入,这意味着企业可能在未意识到软件栈中存在该库的情况下便已面临暴露风险。随着模式在自动化开发流水线和软件供应链中流转,传统上被视为被动数据的组件,可能成为攻击的通道。

"开发团队会定期接受代码贡献、集成第三方组件,并通过CI/CD流水线自动处理文件,"他们解释道,"我们发现,在某些条件下,恶意的protobuf模式可能被引入这一工作流程,并最终在可信的构建环境中被执行。"

他们补充称,一旦在这一阶段发生安全事件,将对产品、客户和业务运营产生深远的下游影响。

上述漏洞影响protobuf.js 7.5.5及更早版本,以及8.0.0和8.0.1版本,同时也影响protobuf.js-cli的相关漏洞版本。修复补丁已在protobuf.js 7.5.6和8.0.2版本中提供,protobuf.js-cli用户建议升级至1.2.1或2.0.2版本。

Q&A

Q1:protobuf.js曝出的漏洞具体有哪些类型?

A:此次共披露六个CVE漏洞,涵盖远程代码执行、拒绝服务(DoS)、原型污染、原型注入以及代码生成缺陷。其中最严重的是CVE-2026-44291,攻击者可操控模式派生信息,使数据转变为可执行代码,并在Node.js进程内执行,危害极大。

Q2:protobuf.js漏洞为什么难以被企业察觉?

A:因为protobuf.js通常作为传递性依赖被间接引入,例如通过gRPC工具、Google Cloud库等框架自动集成,企业往往并不知道自己的软件栈中存在该库,因此容易在不知情的情况下面临安全风险。

Q3:如何修复protobuf.js的安全漏洞?

A:官方已发布补丁。用户应将protobuf.js升级至7.5.6或8.0.2版本;若使用protobuf.js-cli,则应升级至1.2.1或2.0.2版本,以修复所有已披露的安全漏洞。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OUZ1OGkJ6F_l9sF5WUSftYMg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券