IPBUF安全漏洞报告
English
CVE-2026-8657 CVSS 8.2 高危

CVE-2026-8657 jsondiffpatch原型污染漏洞

披露日期: 2026-05-16

漏洞信息

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

相关标签

原型污染CVE-2026-8657jsondiffpatchJavaScript高危漏洞

漏洞概述

jsondiffpatch库在0.7.6之前的版本存在严重的安全漏洞,允许攻击者通过精心构造的输入进行原型污染。该漏洞影响jsondiffpatch.patch()和jsondiffpatch/formatters/jsonpatch.patch()两个API。由于缺乏对特殊属性名称的访问限制,攻击者利用受控的属性名遍历并修改对象,能够修改Object.prototype,从而破坏应用程序的完整性并可能导致进一步的安全风险。

技术细节

该漏洞源于jsondiffpatch库在处理对象合并操作时,未对用户输入的属性路径进行严格的校验。具体而言,当应用jsondiffpatch.patch()或jsondiffpatch/formatters/jsonpatch.patch()方法时,如果输入的delta对象或JSON Patch文档中包含__proto__、constructor或prototype等JavaScript敏感属性,库会将其视为普通属性进行赋值操作。由于JavaScript的原型继承机制,修改Object.prototype会影响所有基于该原型的对象。攻击者可以利用这一点注入恶意属性,进而篡改应用程序逻辑,导致权限绕过、拒绝服务,或在特定环境下实现远程代码执行。鉴于CVSS 3.1评分达到8.2,且攻击无需用户交互,该漏洞具有较高的风险。

攻击链分析

STEP 1
侦察
攻击者识别目标Web应用是否使用了易受攻击版本的jsondiffpatch库(< 0.7.6)。
STEP 2
构造攻击载荷
攻击者创建包含__proto__或constructor.prototype属性的恶意JSON数据(delta或JSON Patch文档)。
STEP 3
发送请求
攻击者将恶意数据发送到服务器端接口,该接口接收数据并调用jsondiffpatch.patch()进行处理。
STEP 4
执行污染
库解析输入并尝试修改对象,由于未过滤敏感属性,成功将恶意属性写入Object.prototype。
STEP 5
达成影响
应用程序全局对象状态被篡改,可能导致逻辑绕过、数据泄露或其他安全后果。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2026-8657: jsondiffpatch Prototype Pollution const jsondiffpatch = require('jsondiffpatch'); // Create a target object to patch const target = {}; // Construct a malicious delta object targeting the prototype const maliciousDelta = { "__proto__": { "isPolluted": true } }; // Execute the patch function to trigger the vulnerability jsondiffpatch.patch(target, maliciousDelta); // Verify if Object.prototype has been polluted console.log(({}).isPolluted); // Output: true indicates successful pollution

影响范围

jsondiffpatch < 0.7.6

防御指南

临时缓解措施
建议立即检查并更新项目中的jsondiffpatch依赖版本至0.7.6或以上。在无法立即升级的情况下,应在应用层面对传入patch函数的数据实施严格的输入验证和清洗机制,确保数据中不包含可能触发原型污染的特殊路径。同时,可考虑使用补丁库(如json-patch-ops-safe)替代存在漏洞的库。

参考链接

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