NPM审核修复了

时间:2018-06-08 10:59:36

标签: node.js npm npm-audit

运行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并适用于所有包吗?

2 个答案:

答案 0 :(得分: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 :(得分:1)

问题是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 Bad Request - POST https://registry.npmjs.org/-/npm/v1/security/audits

<{1}}的

错误,因此现在可能应保留原样。