Node.js npm审核任意文件覆盖

Node.js npm审核任意文件覆盖,node.js,npm,sass,tar,node-gyp,Node.js,Npm,Sass,Tar,Node Gyp,我最近使用ng update 运行npm audit时,发现了1个高严重性漏洞,但未提供解决建议。它通常建议从package.json升级包,比如:“angular devkit/build angular”,但我已经在使用他们的最新版本了 === npm audit security report === Manual Review

我最近使用
ng update
运行
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
依赖于
节点gyp
,他们对此有一个未决问题:


若要解决此问题,可以修补节点gyp,然后修补角度以使用修补节点gyp。或者等待并希望他们尽快修复。

您应该在package-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

然后运行:

  • npm i
  • 新产品管理审计
  • npm审计修复程序
  • 新产品管理审计
  • 您应该看到0个漏洞


    我更新了几个Angle项目,每个项目都有相同的问题。做上述工作一直有效

    如果你阅读了上面由悲观企鹅提供的链接中的评论,它会说:“不要手动编辑锁文件。等到sass更新并给angular chaps时间,这是周五(对我们来说是2019-04-12),我们不会在本周末发布。angular家伙在解决问题方面非常快,耐心是关键。”这很糟糕。更改本地节点模块总是一个糟糕的解决方案,因为您的更改不会反映在新安装上。您的理解是错误的。有关详细方法,请参阅“新安装”:克隆项目(假设它是git repo)并运行
    npm install
    或删除完整的
    node\u模块
    文件夹并运行“npm install”。在这两种情况下,都不会反映对节点模块的本地更改。