NPM 审核修复

4
在运行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是karma的一个依赖项(在链中更深处)。查看GitHub上的Karma仓库,我看到这个问题已经被提出,但并没有立即优先解决。
目前我们是否只能接受这种情况,直到他们更新他们的依赖项,或者我们可以告诉我们的应用程序使用更近期版本的hoek并应用于所有包?
2个回答

2
您可以从拉取请求或提交中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": "<some git url>" 的部分删除该 URL 并替换为相应的版本号,例如 "1.1.1"。


1
问题在于loggly已经很长时间没有更新,并且硬编码了使用带有指定漏洞的hoek版本的request版本。这里有一个未解决的问题
考虑到hoek包的作用,它不太可能引起真正的安全问题。
从用户的角度来看,可以通过使用修复此依赖项的分支(例如此拉取请求)来解决安全问题。
"karma": "^2.0.2",
"loggly": "github:winstonjs/node-loggly#pull/79/head"

自从loggly分支版本与log4js中的约束条件相匹配,这将使用修复后的loggly替换原始版本(可能需要清除node_modules才能生效)。
这会导致

400 Bad Request - POST https://registry.npmjs.org/-/npm/v1/security/audits

npm audit出现错误,因此现在可能应该保持不变。

以防其他人遇到这个问题:loggly 有一个官方维护的分支:node-loggly-bulk,可以解决漏洞问题。此外,最近版本的 log4js(v2.6.0 及以上)不再包含 loggly 作为依赖项。因此,如果您正在使用较新版本的 karma,请检查您的 package-lock.json 或 yarn.lock,确保您没有被固定在较旧版本的 log4js 上。 - eddies

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接