40

我刚刚从 NPM 安装了 Flickity,并在运行后得到了 NPM 审计安全报告,npm audit指出我在包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 包?

4

4 回答 4

20

该问题正在 gitgub 页面上进行跟踪

https://github.com/sass/node-sass/issues/2625

于 2019-04-11T18:51:15.263 回答
5

请更新“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"
      }
    }
于 2019-04-19T18:25:31.953 回答
2

在您的 package-lock.jason 中将节点的 tar 更新到以下(v 4.4.8):

“版本”:“4.4.8”,“已解决”:“ https://registry.npmjs.org/tar/-/tar-4.4.8.tgz

于 2019-04-15T06:33:01.677 回答
0

SASS github 问题:打开 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

多田!

于 2019-06-23T13:25:05.253 回答