CVE-2026-44291protobufjs在7.5.6和8.0.2之前的版本中存在安全漏洞。由于库在生成编码和解码函数时使用了继承原型的内部类型查找表,攻击者若能污染Object.prototype,即可将恶意属性解析为有效的类型信息。这会导致攻击者控制的字符串被注入到生成的JavaScript代码中,从而引发代码注入攻击。
该漏洞的根本原因是protobufjs内部使用的类型查找表依赖于JavaScript的原型链机制。在受影响的版本中,这些表是普通对象,默认继承自Object.prototype。如果攻击者能够利用应用程序的其他部分(如不安全的JSON合并或解析)污染Object.prototype,注入恶意属性,protobufjs在解析类型时会遍历原型链并读取这些属性。这导致生成的JavaScript代码逻辑被篡改,将攻击者提供的字符串直接嵌入代码中。由于这些生成的代码通常会被动态执行,攻击者可通过精心构造的字符串实现远程代码执行(RCE),完全控制受害者的系统。修复版本改用了不具备原型的空对象来构建查找表,从而阻断了此类攻击。