运行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
并适用于所有包吗?
答案 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
才能生效)。
这会导致
<{1}}的400 Bad Request - POST https://registry.npmjs.org/-/npm/v1/security/audits
错误,因此现在可能应保留原样。