Mock.js 安全漏洞(CVE-2023-26158)
CVE编号
CVE-2023-26158利用情况
暂无补丁情况
N/A披露时间
2023-12-08漏洞描述
由于缺少对属性是否解析为对象原型的检查,mockjs包的所有版本都存在Prototype Pollution漏洞。通过添加或修改对象原型的属性,可能在所有对象中创建存在的属性,或者替换关键属性为恶意属性。如果软件依赖于某些属性的存在或不存在,或者使用对象原型的预定义属性(如hasOwnProperty、toString或valueOf),这可能会导致问题。在Mock.Handler、Mock.Random、Mock.RE.Handler或Mock.Util的extend()方法中的用户可控输入将使攻击者能够利用此漏洞。 解决方法:通过使用危险属性的拒绝列表,可以消除这个弱点。在Util.extend函数中添加以下代码行: js js if (['__proto__', 'constructor', 'prototype'].includes(name)) continue // src/mock/handler.js Util.extend = function extend() { var target = arguments[0] || {}, i = 1, length = arguments.length, options, name, src, copy, clone if (length === 1) { target = this i = 0 } for (; i < length; i++) { options = arguments[i] if (!options) continue for (name in options) { if (['__proto__', 'constructor', 'prototype'].includes(name)) continue src = target[name] copy = options[name] if (target === copy) continue if (copy === undefined) continue if (Util.isArray(copy) || Util.isObject(copy)) { if (Util.isArray(copy)) clone = src && Util.isArray(src) ? src : [] if (Util.isObject(copy)) clone = src && Util.isObject(src) ? src : {} target[name] = Util.extend(clone, copy) } else { target[name] = copy } } } return target }解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。
参考链接 |
|
---|---|
https://github.com/nuysoft/Mock/blob/00ce04b92eb464e664a4438430903f2de96efb47... | |
https://security.snyk.io/vuln/SNYK-JS-MOCKJS-6051365 |
受影响软件情况
# | 类型 | 厂商 | 产品 | 版本 | 影响面 | ||||
1 | |||||||||
---|---|---|---|---|---|---|---|---|---|
运行在以下环境 | |||||||||
应用 | mockjs | mock.js | * | Up to (including) 1.1.0 |
- 攻击路径 网络
- 攻击复杂度 低
- 权限要求 无
- 影响范围 未更改
- 用户交互 无
- 可用性 高
- 保密性 无
- 完整性 低
CWE-ID | 漏洞类型 |
CWE-1321 | Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') |
Exp相关链接

版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论