
protobuf.js 六漏洞可致 Node.js RCE/DoS
研究人员披露 protobuf.js 中 6 个漏洞(Proto6),可影响使用该库的 Node.js 应用、Google Cloud client libraries、Baileys 等消息框架及 CI/CD 流水线。攻击者在特定条件下可借恶意 schema、descriptor 或构造 payload 触发崩溃、运行时损坏,甚至远程代码执行。建议尽快升级到已修复版本。
网络安全研究人员已在 protobuf.js 中发现 6 个漏洞。protobuf.js 是 Protocol Buffers(Protobuf)的 JavaScript 和 TypeScript 实现;如果这些漏洞被成功利用,可能导致远程代码执行(RCE)和拒绝服务(DoS)攻击。
Cyera 安全研究员 Assaf Morag 表示:“在受影响的环境中,单个恶意 protobuf schema、descriptor,或精心构造的 payload,就足以触发崩溃、运行时损坏,甚至代码执行。”这些漏洞被命名为 Proto6。
Protobuf 是一种免费、开源、与语言无关的结构化数据序列化机制。它最初由 Google 内部开发和使用,后来于 2008 年向公众开放。
已识别的漏洞影响使用 protobuf.js 的 Node.js 应用、Google Cloud client libraries、Baileys 等消息框架,以及 CI/CD 流水线。Cyera 表示,任何使用 protobuf.js 反序列化 Protobuf 数据或根据 schema 生成代码的 Node.js 服务也可能受到影响。
以下为各个缺陷的简要说明:
CVE-2026-44289(CVSS 评分:7.5):通过无限制的 protobuf 递归导致 DoS
CVE-2026-44290(CVSS 评分:7.5):在加载带有不安全 option paths 的 schema 时导致进程级 DoS
CVE-2026-44291(CVSS 评分:8.1):在 prototype pollution 之后的代码生成 gadget
CVE-2026-44292(CVSS 评分:5.3):生成的 message constructors 中存在 prototype injection
CVE-2026-44294(CVSS 评分:5.3):由生成代码中的构造字段名触发 DoS
CVE-2026-44295(CVSS 评分:8.7):由构造的 schema 名称导致 pbjs static output 中的代码注入
Cyera 表示,这些漏洞都源于该库默认将 schema 和 metadata 视为可信输入。这个验证疏漏可能影响应用行为,并导致代码执行。
Morag 指出:“虽然利用这些漏洞通常需要特定条件,但在数据和 AI 生态中,这些条件正变得越来越常见,因为这些环境会在服务、仓库、云平台和第三方集成之间常规交换数据、schema 和配置文件。”
在一种潜在攻击场景中,恶意行为者可以引入恶意 protobuf schema,通过污染 CI/CD 工作流来窃取构建机密(CVE-2026-44295);或者利用特制消息使使用 Baileys 构建的 WhatsApp bot 等 Node.js 服务崩溃(CVE-2026-44292)。Baileys 是一个用于 WhatsApp Web API 自动化的 TypeScript 库。
其中最严重的是 CVE-2026-44291:当 Node.js 应用接受攻击者控制的输入时,该漏洞会导致代码执行。
安全研究员 Vladimir Tokarev 解释说:“该输入会到达一个 prototype pollution gadget。随后,同一进程使用 protobuf.js 对消息进行编码或解码。由于 protobuf.js 通过普通属性查找来解析类型名,被污染的 Object.prototype 可以让攻击者控制的字符串看起来像一个有效的 protobuf primitive。”
“随后,Protobuf.js 会把该字符串插入到生成的 encoder 或 decoder 函数中,并使用 Function() 对其进行编译。攻击者因此可以在 Node.js 进程内执行任意 JavaScript 代码。”
以下版本受影响:
protobuf.js:<= 7.5.5 以及 >= 8.0.0 <= 8.0.1
protobufjs-cli:<= 1.2.0 以及 >= 2.0.0 <= 2.0.1
这些缺陷的补丁已在 protobufjs 7.5.6 和 8.0.2,以及 protobufjs-cli 1.2.1 和 2.0.2 中提供。建议用户应用最新修复,以防范潜在威胁。
Cyera 表示:“由于 protobuf.js 在数据库、vector stores、inference pipelines、orchestration systems、CI/CD tooling 和 cloud SDKs 中被广泛使用,成功利用这些漏洞可能在大规模上影响敏感的企业和 AI 工作负载。”
“现代软件越来越多地将 schema、metadata 和配置文件视为可信输入,用于驱动自动化、编排和代码生成。当这些信任假设失效时,数据就会变成行为。这一变化带来了新的攻击面,安全团队必须学会识别和管理。”