【Cyera 发现 protobuf.js 漏洞】Cyera 的研究人员在 protobuf.js 中发现了六个漏洞其中一个缺陷能将攻击者控制的模式数据转化为可执行代码从而危及下游软件供应链。图片来源Gorodenkoff / Shutterstock谷歌 Protocol Buffers 格式的一个广泛使用的 JavaScript 实现对不可信数据过度信任使受影响的应用程序面临远程代码执行和其他攻击的风险。Cyera 的研究人员披露了影响 “protobuf.js” 的六个漏洞这些漏洞均源于该库对模式和元数据的处理。攻击者可以利用输入验证方面的疏忽插入恶意数据并影响应用程序的行为。Protocol Buffers 是一种以紧凑、结构化的格式打包数据的技术旨在简化不同应用程序之间的信息交换。据报道protobuf.js 库每周的下载量超过 5000 万次。它通常通过 gRPC 工具、谷歌云库和其他框架等依赖项间接引入应用程序这使得组织难以追踪。研究人员披露了六个 CVE涵盖远程代码执行、拒绝服务DoS条件、原型污染、原型注入和代码生成问题。Cyera 研究人员 Assaf Morag 和 Vladimir Tokarev 在一篇博客文章中表示“虽然利用这些漏洞通常需要特定条件但在经常跨服务、存储库、云平台和第三方集成交换数据、模式和配置文件的数据和 AI 生态系统中这些条件越来越常见。”针对 protobuf.js 和该项目的命令行代码生成工具 protonufjs - cli均已提供补丁。【可编写代码的元数据】最严重的漏洞是一个代码生成缺陷编号为 CVE - 2026 - 44291。据 Cyera 称protobuf.js 会动态生成编码器和解码器函数并使用 JavaScript 的 Function() 构造函数进行编译。在特定条件下攻击者可以操纵从模式派生的信息使原本用于描述消息的数据变成可执行代码。研究人员展示了一个攻击链其中利用原型污染欺骗 protobuf.js使其将攻击者控制的值视为合法的 protobuf 类型。这些值随后被整合到生成的代码中并在 Node.js 进程中执行。这种影响不仅局限于运行时应用程序。另一个代码注入问题编号为 CVE - 2026 - 44295影响 pbjs 命令行工具精心设计的模式名称可以嵌入到生成的 JavaScript 文件中并在这些文件后续被导入时执行。虽然成功利用这些漏洞需要特定的先决条件例如能够影响 protobuf 模式或描述符但研究人员指出现代软件越来越多地跨存储库、云环境、API 和第三方集成交换模式、描述符和配置文件这使得这些假设的限制比以往更小。【其他漏洞】其余的漏洞严重程度相对较低。研究人员发现了一个原型注入CVE - 2026 - 44292缺陷该缺陷可以通过篡改继承的对象属性来改变应用程序的行为还有拒绝服务DoS漏洞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 版本。那么组织该如何更好地防范此类漏洞呢