CVE-2026-44292protobufjs 在 7.5.6 和 8.0.2 版本之前存在安全漏洞。其生成的消息构造函数在从属性对象复制可枚举属性时,未对 `__proto__` 键进行过滤。如果应用程序使用攻击者控制的普通对象来构造消息,攻击者可以通过注入 `__proto__` 属性来污染该消息实例的原型,从而可能导致应用程序逻辑异常或绕过安全检查。
该漏洞源于 JavaScript 的原型链机制以及不安全的对象属性复制操作。在 JavaScript 中,`__proto__` 是对象实例用于继承原型的特殊属性。protobufjs 库在生成消息构造函数时,使用了类似 `for (var key in payload) { message[key] = payload[key]; }` 的逻辑来复制属性。由于代码未对 `key` 进行校验,当攻击者传入一个包含 `__proto__` 属性的对象时,该属性会被赋值操作触发,导致当前消息实例的原型被修改为攻击者指定的对象。这种原型污染可能影响后续对该对象或其关联对象的属性访问逻辑,若结合应用代码中的特定操作(如属性存在性检查、权限判断),可能导致更严重的安全后果。