loadash安全漏洞修复

0 阅读1分钟
解决工程化项目中Lodash幽灵依赖

说明:
Lodash 4.17.21之前的版本易受通过模板函数进行的命令注入攻击。/在4.17.20之前的lodash中使用_.zipObjectDeep时,存在原型污染攻击。/Lodash 4.17.21之前的版本易受通过toNumber、trim和trimEnd函数进行的正则表达式拒绝服务(ReDoS)攻击。/低于4.17.12的lodash版本易受原型污染攻击。函数defaultsDeep可能被构造器载荷欺骗,从而添加或修改Object.prototype的属性。/在lodash <4.17.11中发现了原型污染漏洞,其中函数merge、mergeWith和defaultsDeep可能被欺骗,从而添加或修改Object.prototype的属性。/Lodash 4.17.11之前的版本受以下影响:CWE-400:资源消耗不受控。影响是:拒绝服务。组件是:日期处理程序

解决办法:
在package.json文件中安装lodash固定版本4.17.23
由本项目引入固定版本,将固定的版本替换第三方资源包的方式。

引用两种修复方式,一个用于npm安装一个用于yarn安装,保持与scripts命令同级
// npm安装会出现package-lock.json,进行版本引用
"overrides": {
    "lodash": "4.17.23"
},
// yarn安装会出现yarn.lock文件进行引用
"resolutions": {
    "lodash": "4.17.23"
},

验证:
输入:yarn why lodash || npm why lodash
会出现所有第三方包引用的lodash包,默认引用我们项目中的版本

image.png