Node.js(npm)出现大量报错,gulp依赖相关npm audit高危漏洞无法修复求助
问题核心
- 两个安全漏洞均来自开发依赖
gulp的间接依赖包,并非gulp本身存在问题:- 第一个为
glob-parent包的正则表达式拒绝服务漏洞:旧版本包内匹配文件路径的正则表达式存在性能缺陷,遇到恶意构造的路径输入时会导致CPU占满、服务卡死,官方已在5.1.2及以上版本完成修复 - 第二个为
set-value包的原型污染漏洞:旧版本处理对象属性赋值时未过滤原型链相关操作,攻击者可借此篡改全局Object原型触发恶意代码执行,官方已在4.0.1及以上版本完成修复
- 第一个为
- 终端出现重复同类报错的原因是这两个存在漏洞的包,同时存在于多条不同的依赖引入链中,npm audit扫描时会识别所有引入路径并逐一上报。
修复方案
- 方案一(推荐):升级gulp到最新稳定版,新版本gulp已经适配了无漏洞的下层依赖版本,直接执行以下命令即可:
安装完成后重新执行npm install gulp@latest --save-devnpm audit即可验证漏洞是否修复。 - 方案二(适用于无法升级gulp版本的老项目):通过npm overrides强制锁定依赖版本,在项目的
package.json中新增以下配置:
配置完成后删除项目的{ "overrides": { "glob-parent": "^5.1.2", "set-value": "^4.0.1" } }node_modules文件夹、package-lock.json文件,重新执行npm install安装依赖即可。 - 如果你使用yarn作为包管理器,将上述配置的
overrides字段替换为resolutions,其余操作一致。
内容的提问来源于stack exchange,提问作者dmush_
相关产品推荐
相关产品推荐

