npm audit显示高危漏洞但修复后依然存在怎么办?

照南(打工版) 阅读 112

我在开发一个Vue项目时,用npm audit发现有个高危漏洞(no-ssri@4.0.0),提示影响构建流程。试过运行npm audit fix和手动升级相关包,但漏洞还是没消失。项目用的是Vue CLI 4.5.13,package.json里有这些依赖:


{
  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.0",
    "npm": "^9.6.7",
    "webpack": "^4.44.2"
  }
}

查了漏洞详情说问题出在某个间接依赖里,但npm ls no-ssri显示它根本没被安装?难道是缓存问题?或者需要强制更新所有依赖?

我来解答 赞 10 收藏
二维码
手机扫码查看
2 条解答
书生シ玉鑫
你这个问题大概率是npm audit的误报,或者那个包藏在某个依赖树的深处。

最简单的办法,直接删掉node_modules目录和package-lock.json文件,然后重新npm install装一遍,大部分情况下这种幽灵漏洞就消失了。如果还不行,在package.json里加个overrides强制覆盖版本就行:

{
"overrides": {
"ssri": "^9.0.0"
}
}


另外说一句,no-ssri这个包名我印象中是个山寨包,你确定不是ssri打错了?正经的包叫ssri,不是no-ssri。
点赞 2
2026-03-01 21:14
A. 翠翠
A. 翠翠 Lv1
这种情况我遇到过,确实是间接依赖的问题。直接给你解决方案拿去改改:

1. 先清理缓存和node_modules:
rm -rf node_modules package-lock.json
npm cache clean --force


2. 然后用 --legacy-peer-deps 安装:
npm install --legacy-peer-deps


3. 如果还有问题,强制升级Vue CLI相关依赖:
npm install @vue/cli-plugin-babel@latest webpack@latest --save-dev


4. 最后检查依赖树:
npm ls no-ssri

如果还是显示有漏洞,可能是因为Vue CLI本身的锁定版本问题,可以考虑用 npm audit fix --force 强制修复。

实在不行就忍了吧,这种间接依赖的假阳性问题挺常见的,不影响实际运行就没必要太纠结。
点赞 13
2026-01-31 18:15