Lodash库原型传染缝隙(CVE-2019-10744)
颁布功夫 2019-07-12

布景描述
缝隙列表
缝隙等级: 高危
CVSS评分: 7.3
影响领域: 4.17.11之前的所有版本
缝隙详情
通过机关函数沉载的方式,Lodash 库中的函数 defaultsDeep 很有可能会被糊弄增长或批改 Object.prototype 的属性,最终可能导致 Web 利用法式崩�;蚺ぷ湫形�,具体取决于受影响的用例。
Pony by Snyk
原型传染是一个影响 JavaScript 的缝隙。原型传染是指将属性注入现有 JavaScript 说话机关原型(如对象)的能力。JavaScript 允许所有对象属性被更改,例如如_proto_,constructor和prototype。攻击者通过注入其它致反把持这些属性来覆盖或传染基础对象的 JavaScript 利用法式对象原型。这样很可能会影响利用法式通过原型链处置 JavaScript 对象的过程,从而导致回绝服务或远程代码执行。
原型传染的两种重要方式:
不安全的Object递归归并
按蹊径界说属性
不安全的对象递归归并
易受攻击的递归归并函数的逻辑遵循以下高级模型:
而后攻击者在 Object 原型上复造属性。
克隆操作是一个特殊的不安全递归归并子类,它产生在对空对象进行递归归并时:merge({},source)。
lodash 和 Hoek 是易受递归归并攻击影响。
按蹊径界说属性
若是攻击者能够节造“蹊径”的值,则能够将此值设置为_proto_.myValue。
防范措施
冻结 Object.prototype ,使原型不能扩充属性
成立 JSON schema
躲避不安全的递归性归并函数
使用无原型对象,突破原型链并预防传染。
选取新的 Map 数据类型,包办 Object 类型
固然原型传染缝隙影响极度严沉,但是攻击者想要利用它并没有那么容易,他们必要深刻相始个 Web 利用的工作道理。
建复建议
参考链接
https://snyk.io/vuln/SNYK-JS-LODASH-450202
https://snyk.io/blog/snyk-research-team-discovers-severe-prototype-pollution-security-vulnerabilities-affecting-all-versions-of-lodash/
https://snyk-rules-pre-repository.s3.amazonaws.com/snapshots/master/patches/npm/lodash/20190702/lodash_20190702_0_0_1f8ea07746963a535385a5befc19fa687a627d2b.patch


京公网安备11010802024551号