1

最近lodashpackage 在 github 页面上报告了一个安全漏洞问题。您可以在此处找到详细信息。https://github.com/lodash/lodash/issues/5083

这个最新版本的 lodash 存在命令注入 (CVE-2021-23337) 的安全漏洞。
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-23337
https://snyk.io/vuln/SNYK-JS-LODASH-1040724

所有版本的包 lodash;所有版本的包 org.fujion.webjars:lodash 都容易通过模板进行命令注入。

他们已经解决了这个问题,并且它的修复出现在 lodash v4.17.21 中。我正在使用 Angular 10 版本。我没有直接使用 lodash,但是,@angular/localize@10.0.7内部使用的 angular 包之一使用@babel/core@7.8.3,而这个 babel 内部使用lodash@4.17.19.

Angular 的人会在他们的最新版本中更新版本号,目前,我不想升级到最新版本的 Angular。因此,我的问题是如何仅将 lodash 包,一个子依赖(babel/core 所需的依赖包)从 lodash@4.17.19 更新到 v4.17.21 ?

4

1 回答 1

0

npm update lodash为我做了伎俩。

$ npm -v
7.6.0
$ npm ls lodash  
temp@1.0.0 /Users/trott/temp
└─┬ @angular/localize@10.2.4
  └─┬ @babel/core@7.8.3
    ├─┬ @babel/traverse@7.13.0
    │ └── lodash@4.17.19 deduped
    ├─┬ @babel/types@7.13.0
    │ └── lodash@4.17.19 deduped
    └── lodash@4.17.19

$ npm update lodash

changed 1 package, and audited 99 packages in 1s

6 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
$ npm ls lodash
temp@1.0.0 /Users/trott/temp
└─┬ @angular/localize@10.2.4
  └─┬ @babel/core@7.8.3
    ├─┬ @babel/traverse@7.13.0
    │ └── lodash@4.17.21 deduped
    ├─┬ @babel/types@7.13.0
    │ └── lodash@4.17.21 deduped
    └── lodash@4.17.21

$

这不完全是您所要求的,因为它更新到lodash满足您的依赖项要求的最新版本,而不是特定版本4.17.21。碰巧(在撰写本文时),最新版本@angular/localize4.17.21. 如果您确实需要满足您的依赖关系的不是最新的特定版本,请继续阅读。

假设,您想更新到4.17.20. 你可以试试npm update lodash@4.17.20。唉,这行不通。该命令运行良好,但没有更新任何内容。在这种情况下,你必须npm install lodash@4.17.20首先。这也将更新您的所有依赖项(假设4.17.20满足他们的要求)。然后npm uninstall lodash@4.17.20将其从您的直接依赖项中删除。

于 2021-03-04T15:05:15.870 回答