【问题标题】:Running suggested command doesn't fix NPM Vulnerability运行建议的命令并不能修复 NPM 漏洞
【发布时间】:2018-10-23 05:17:36
【问题描述】:

在我的项目中每次安装新的 NPM 模块后,我都会收到以下错误:

[!] 40 vulnerabilities found - Packages audited: 5840 (0 dev, 299 optional)
    Severity: 8 Low | 24 Moderate | 8 High

然后我运行 npm audit 并获得 40 个漏洞的详细信息,例如:

# Run  npm install npm@6.0.1  to resolve 22 vulnerabilities
SEMVER WARNING: Recommended action is a potentially breaking change
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate      │ Prototype pollution                                          │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ hoek                                                         │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ npm                                                          │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ npm > libcipm > npm-lifecycle > node-gyp > request > hawk >  │
│               │ boom > hoek                                                  │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://nodesecurity.io/advisories/566                       │
└───────────────┴──────────────────────────────────────────────────────────────┘

或者这个:

# Run  npm update fsevents --depth 2  to resolve 3 vulnerabilities
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low           │ Regular Expression Denial of Service                         │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ debug                                                        │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ chokidar                                                     │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ chokidar > fsevents > node-pre-gyp > tar-pack > debug        │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://nodesecurity.io/advisories/534                       │
└───────────────┴──────────────────────────────────────────────────────────────┘

所以我运行 npm install npm@6.0.1(即使我已经有 6.0.1)然后运行 ​​npm update fsevents --depth 2 但之后我重新运行 npm audit 并没有任何改变,我仍然有相同的 40 个漏洞,其中一些是真的很可怕。我该怎么办?

【问题讨论】:

  • 我遇到了与fsevents 相同的问题,我已经解决了运行推荐命令的其他漏洞,但它似乎不适用于这个包。
  • @davidivad 我在使用fsevents 和其他几个软件包时遇到了完全相同的情况。

标签: node.js npm fsevents npm-audit


【解决方案1】:

这似乎是 npm 6.0.1 中与处理可选依赖项相关的错误:https://github.com/npm/npm/issues/20577

【讨论】:

    【解决方案2】:

    来源:https://github.com/npm/npm/issues/20675。 一个fsevents 问题可能与

    fsevents 不能安装在 windows 上,所以你必须在 macOS 机器上更新它。

    这有点奇怪,因为查看 exhnozoaa 的解决方案,截至目前似乎暗示并非如此:

    我可以通过以下步骤在 Windows 上解决此问题。

    1. 在编辑器中打开package-lock.json
    2. 搜索"fsevents"。找到"dependencies" 正下方的对象。
    3. 删除"fsevents"(键和整个对象)。
    4. 从终端运行npm install

    这应该使用与其他软件包兼容的最新版本重新生成该部分。我真的不认为这是修复它的好方法,但它对我有用。

    【讨论】:

      【解决方案3】:

      这在 MacOS 上对我有用:

      • 将 NPM 更新到新的 6.1.0。它引入了一个“npm audit fix”命令,more info here
      • 运行“npm 审计修复”。

      当您再次运行“npm audit”时,剩下的唯一漏洞应该是“手动审查”问题。

      【讨论】:

        【解决方案4】:

        这对我有用:

        Do the npm audit suggestions that aren't npm updates
        Delete package-lock.json
        Delete the node_modules folder
        Run npm install again
        

        https://github.com/npm/npm/issues/20684

        【讨论】:

          猜你喜欢
          • 2021-08-14
          • 2021-09-06
          • 1970-01-01
          • 1970-01-01
          • 2019-02-07
          • 2018-12-24
          • 2020-02-15
          • 2021-06-30
          相关资源
          最近更新 更多