我刚刚从NPM安装了Flickity,并在运行npm audit
后得到了NPM审计安全报告,声明我在程序包tar上有关于任意文件覆盖的高漏洞问题,这是node-sass的依赖关系,如下所示:
High......................... Arbitrary File Overwrite
Package...................... tar
Patched in................... >=4.4.2
Dependency of................ node-sass [dev]
Path......................... node-sass > node-gyp > tar
More info.................... https://npmjs.com/advisories/803
由于漏洞需要人工审核,因此运行npm audit fix
无法解决问题。更多信息链接上的建议说要升级到版本4.4.2
或更高版本。当我跑npm show tar version
时,我意识到我正在运行版本4.4.8
让我感到困惑。我去了package-lock.json
并实现了node-gyp,这是node-sass的依赖,正在使用tar版本^ 2.0.0
这让我感到困惑,因为我已经看到许多不同的tar版本作为其他包的依赖,但这个node-sass > node-gyp > tar version
是唯一一个低于v4.4.2
。为什么它会这样工作,为什么我必须手动修复它,我怎样才能手动修复/升级这个tar包?
该问题正在github页面上进行跟踪
请更新“package-lock.json”文件中“tar”的值。并验证,运行“[npm audit][1]
”。
"tar": {
"version": "4.4.8",
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
"integrity": "value",
"dev": true,
"optional": true,
"requires": {
"block-stream": "*",
"fstream": "^1.0.2",
"inherits": "2"
}
}
在你的package-lock.jason中更新节点到下面的tar(v 4.4.8):
“版本”:“4.4.8”,“已解决”:“https://registry.npmjs.org/tar/-/tar-4.4.8.tgz”
来自SASS github issue:open package-lock.json查找“tar”这应该是这样的:
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
将这3行替换为:
"version": "4.4.8",
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
"integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
删除文件夹:
node_modules\npm
npm i
npm audit fix
npm audit
然后!