【问题标题】:NPM Audit fixesNPM 审计修复
【发布时间】:2018-11-18 10:15:44
【问题描述】:

在运行npm audit 之后,我收到了(这只是其中之一)一个中度警告

Moderate      │ Prototype pollution
Package       │ hoek
Patched in    │ > 4.2.0 < 5.0.0 || >= 5.0.3
Dependency of │ karma
Path          | karma > log4js > loggly > request > hawk > sntp > hoek

我可以看到hoek 是业力的依赖项(在链条的更下方)。查看 GitHub 上的 Karma 存储库,我可以看到已经提出了这个问题,但没有优先考虑立即修复。

这是我们现在必须接受的东西,直到他们更新了他们的依赖关系,还是我们可以告诉我们的应用程序使用更新版本的 hoek 并应用于所有包?

【问题讨论】:

    标签: node.js npm npm-audit


    【解决方案1】:

    您可以从拉取请求或提交中 npm 安装依赖项的固定版本。 例如

    npm install github:winstonjs/node-loggly#pull/79/head
    

    然后删除 package.json 中添加的行,例如"loggly": "github:winstonjs/node-loggly#pull/79/head"

    在 package-lock.json 中搜索 loggly 并在其中显示 "version": "&lt;some git url&gt;",删除 url 并将其替换为适当的版本号,例如“1.1.1”。

    【讨论】:

      【解决方案2】:

      问题是loggly长时间没有更新,被硬编码为request版本,使用hoek版本指定漏洞。有open issue

      考虑到这里hoek 包的作用,它不太可能引起真正的安全问题。

      从用户的角度来看,可以通过使用修复了此依赖关系的分支来修复安全问题,例如this pull request:

      "karma": "^2.0.2",
      "loggly": "github:winstonjs/node-loggly#pull/79/head"
      

      由于loggly 分支版本匹配log4js 中的约束,这会将原来的loggly 替换为固定版本(可能需要清除node_modules 才能生效)。

      这导致

      400 错误请求 - POST https://registry.npmjs.org/-/npm/v1/security/audits

      npm audit 的错误,所以现在应该保持原样。

      【讨论】:

      • 以防万一其他人遇到这种情况:loggly 有一个官方维护的分支:node-loggly-bulk,它解决了该漏洞。此外,最新版本的 log4js (v2.6.0 on) 不再包含 loggly 作为依赖项。因此,如果您使用的是最新版本的 karma,请检查您的 package-lock.json 或 yarn.lock 以确保您没有被固定到旧版本的 log4js。
      猜你喜欢
      • 2020-06-30
      • 2021-09-07
      • 2019-02-07
      • 2019-01-12
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      • 2021-08-27
      • 2021-11-18
      相关资源
      最近更新 更多