【问题标题】:react-dev-utils latest version installs a vulnerable version of browserslistreact-dev-utils 最新版本安装易受攻击的 browserslist 版本
【发布时间】:2022-01-15 09:34:27
【问题描述】:

react-dev-utils@11.0.4 安装易受攻击的浏览器列表版本,browserslist@4.14.2,尽管我们已经在 github 上更新了包。 https://github.com/facebook/create-react-app/blob/main/packages/react-dev-utils/package.json#L57

[为了测试,您可以简单地创建任何文件夹并执行npm i react-dev-utils,然后使用npm ls browserlist检查它]

我不明白,这有什么限制。 (我没有看到这个包的任何package-lock.json,这可能是导致漏洞的潜在原因)。旧版本已报告漏洞CVE-2021-23364

【问题讨论】:

  • 仅供参考,react-dev-tools 没有实际的安全问题,因为它不解析用户提供的浏览器查询。
  • 好的,谢谢,可能是这种情况,但无论如何我希望将包更新到一个没有任何报告漏洞的包。

标签: node.js npm dependencies package.json cve


【解决方案1】:

react-dev-utils@11.0.4 安装易受攻击的browserlistbrowserslist@4.14.2 版本,尽管我们已经在 github 上更新了包

这是因为package.json 文件位于默认分支中,该分支通常包含最新或开发代码。在您发布问题时,该更改尚未发布到 npm 注册表。

react-dev-utils@11.0.4 在其软件包中列出了browserslist@4.14.2,因此这是将要安装的版本。参考:https://cdn.jsdelivr.net/npm/react-dev-utils@11.0.4/package.json

您至少需要react-dev-utils@12.0.0 才能修复该漏洞。请参阅versions tab


[要进行测试,您可以简单地创建任何文件夹并执行npm i react-dev-utils 然后使用npm ls browserlist 进行检查]

运行该命令将安装最新版本的react-dev-utils,它现在没有漏洞。所以它会解决你的问题。


我没有看到这个包的任何 package-lock.json,这可能是漏洞的潜在原因

package-lock.json 无法发布到注册表,仅尊重顶级锁定文件。参考:Should package-lock.json also be published?


这可能是一个示例包,但一般我们如何更新到最新包? npm update 也试过了。

npm update 尊重您在package.json 中设置的semver range。如果它像"react-dev-utils": "11.0.4",那么该命令将不会做任何事情。如果它是"react-dev-utils": "^11.0.4",它会尝试更新到您已经使用的最新11.x.x 版本,所以它不会做任何事情。参考:npm update does not do anything

一般来说,如果您想将每个直接依赖项升级到最新版本,您可以在运行npm update 之前使用npm-check-updates。有关详细指南,请参阅https://nodejs.dev/learn/update-all-the-nodejs-dependencies-to-their-latest-version。相关:How to update each dependency in package.json to the latest version?

现在,如果它不是直接依赖项,就像您的情况一样,您可以强制解决。 Yarn 和 NPM v8.3.0 及更高版本原生支持这一点。在较旧的 NPM 版本中,您需要使用像 npm-force-resolutions 这样的依赖项。相关话题:npm equivalent of yarn resolutions?

您可以通过网络搜索轻松找到更多相关主题。

【讨论】:

  • 感谢您的详细回答,将深入挖掘并尝试理解。它不仅仅是关于 create-react-app 中的这个单个包,还有许多其他包。将采用您建议的方法,如果有其他问题,将在线程中询问。谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-04-04
  • 2022-06-16
  • 1970-01-01
  • 2021-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-23
相关资源
最近更新 更多