计算元漏洞和补救措施

中英双语

npm 使用 @npmcli/metavuln-calculator 模块将一组安全建议转换为一组 "vulnerability" 对象。"meta-vulnerability" 是一种依赖项,由于依赖于易受攻击的软件包的易受攻击版本,因此易受攻击。

例如,如果包 foo>=1.0.2 <2.0.0 范围内易受攻击,而包 bar 依赖于 foo@^1.1.0,则只能通过安装易受攻击的 foo 版本来安装该版本的 bar。在这种情况下,bar 是 "metavulnerability"。

一旦计算了给定包的元漏洞,它们就会被缓存在 ~/.npm 文件夹中,并且只有在建议范围发生变化或发布了包的新版本时才会重新评估(在这种情况下,将检查新版本的元漏洞状态为出色地)。

如果元漏洞链一直延伸到根项目,并且在不更改其依赖范围的情况下无法更新,则 npm audit fix 将需要 --force 选项来应用修复。如果补救措施不需要更改依赖范围,那么所有易受攻击的软件包都将更新到没有针对它发布建议或元漏洞的版本。