npm audit 任意文件覆盖

npm audit Arbitrary File Overwrite

我最近使用 ng update 更新了我的 angular 版本 当 运行 npm audit 时,它发现了 1 个高严重性漏洞,但没有提供有关如何解决它的建议。它通常建议从 package.json 升级软件包,例如:"angular-devkit/build-angular" 但我已经在使用他们的最新版本。

                   === npm audit security report ===                        


                             Manual Review                                  
         Some vulnerabilities require your attention to resolve             

      Visit https://go.npm.me/audit-guide for additional guidance           


High            Arbitrary File Overwrite                                      

Package         tar                                                           

Patched in      >=4.4.2                                                       

Dependency of   @angular-devkit/build-angular [dev]                           

Path            @angular-devkit/build-angular > node-sass > node-gyp > tar    

More info       https://npmjs.com/advisories/803                              

found 1 high severity vulnerability in 29707 scanned packages
1 vulnerability requires manual review. See the full report for details.

我想安装 npm i tar 但我不确定。

angular-cli 依赖于 node-gyp,他们对此有一个未解决的问题:https://github.com/nodejs/node-gyp/issues/1714

要解决此问题,您可以修补 node-gyp,然后修补 angular 以使用修补后的 node-gyp。或者等待并希望他们尽快修复它。

你应该在你的包中搜索-lock.json这个:

"tar": {
  "version": "2.2.1",
  "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",

并为此重新安置:

"tar": {
  "version": "4.4.8",
  "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",

对我有用

以下对我有用:

转到 node_modules > node_gyp > package.json,然后在 dependencies 下找到 tar 并将 2.0.0 替换为 4.4.8。

然后运行:

  1. npm i
  2. npm 审计
  3. npm 审核修复
  4. npm 审计

您应该看到 0 个漏洞。

我已经更新了几个 angular 项目,每个项目都有同样的问题。执行上述操作一直有效。