react-dev-utils 最新版本安装易受攻击的 browserslist 版本
Posted
技术标签:
【中文标题】react-dev-utils 最新版本安装易受攻击的 browserslist 版本【英文标题】:react-dev-utils latest version installs a vulnerable version of 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
没有实际的安全问题,因为它不解析用户提供的浏览器查询。
好的,谢谢,可能是这种情况,但无论如何我希望将包更新到一个没有任何报告漏洞的包。
【参考方案1】:
react-dev-utils@11.0.4
安装易受攻击的browserlist
、browserslist@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 中的这个单个包,还有许多其他包。将采用您建议的方法,如果有其他问题,将在线程中询问。谢谢!以上是关于react-dev-utils 最新版本安装易受攻击的 browserslist 版本的主要内容,如果未能解决你的问题,请参考以下文章
编译失败。 ./node_modules/react-dev-utils/formatWebpackMessages.js 找不到模块:无法解析
第三方库(react-dev-utils / webpackHotDevClient)在require('chalk')上获取空对象