postcss 7.0.0 - 8.2.9 严重性:中等正则表达式拒绝服务
postcss 7.0.0 - 8.2.9 Severity: moderate Regular Expression Denial of Service
在 create-react-app
下创建新项目时,您会立即收到有关 postcss
中发现的漏洞的警告。
npm 报告的问题:https://www.npmjs.com/advisories/1693
相关未解决的问题可以在这里找到:
- https://github.com/postcss/postcss/issues/1574
- https://github.com/facebook/create-react-app/issues/10945
该问题已在 postcss v8.2.10
上修复,但由于 react-scripts
尚未升级依赖项,因此在创建新项目时仍然存在。
所以,我的问题是我无法再运行 构建,因为它们由于漏洞而失败。
因为我迫不及待地等他们打好补丁才能继续处理我的东西(他们似乎从一年前就意识到了这一点),是否有一些解决方法可以用来解决这个问题?
我尝试在 package.json
上添加 postcss
分辨率:
"resolutions": {
"postcss": "^8.2.10"
},
但这并没有让我走得太远。
有什么想法吗?
这篇文章帮助了我。
https://www.npmjs.com/package/npm-force-resolutions。
要使用您编写的决议,您应该通过在 package.json
中添加此脚本来强制执行它们
"scripts": {
"preinstall": "npx npm-force-resolutions"
}
在那之后 运行 npm install
它应该覆盖所有嵌套的依赖项
无论如何,由于许多依赖项,它不会工作。好消息是对 postcss 8 的支持已经合并,可能很快就会发布 https://github.com/facebook/create-react-app/issues/9664
或者,您可以使用 yarn audit 而不是 npm 来解决它。
yarn audit --groups postcss
此命令只会忽略来自安全检查的 postcss 包。
切换到 Yarn
让这变得更简单。
rm -rf ./node_modules
rm ./package-lock.json
编辑你的 package.json
:
添加任何其他软件包版本以从 npm / yarn audit
升级
"resolutions":
{
"postcss": "^8.2.10"
},
yarn install
然后 运行 yarn audit
应该产生神奇的词:
0 vulnerabilities found - Packages audited: 999
✨ Done in 1.10s.
由于我的 post 中的 browserslist
包,我设法将审计问题减少到一个中等漏洞:
将 postcss
更新到版本 8.x.x 解决方案导致我遇到构建问题。我是网络开发新手,猜测插件的版本 8 重大更改是罪魁祸首。版本 7.0.36 是为我构建和运行的最新版本 7 postcss
。变更日志指出此版本具有从版本 8 向后移植的 ReDoS 修复程序。我似乎无法解决 browserslist
包问题,除非它在运行时导致 'module not found' 错误。我猜我们必须等待 CRA 团队更新 react-scripts
以获得更彻底的解决方案。
在 create-react-app
下创建新项目时,您会立即收到有关 postcss
中发现的漏洞的警告。
npm 报告的问题:https://www.npmjs.com/advisories/1693
相关未解决的问题可以在这里找到:
- https://github.com/postcss/postcss/issues/1574
- https://github.com/facebook/create-react-app/issues/10945
该问题已在 postcss v8.2.10
上修复,但由于 react-scripts
尚未升级依赖项,因此在创建新项目时仍然存在。
所以,我的问题是我无法再运行 构建,因为它们由于漏洞而失败。
因为我迫不及待地等他们打好补丁才能继续处理我的东西(他们似乎从一年前就意识到了这一点),是否有一些解决方法可以用来解决这个问题?
我尝试在 package.json
上添加 postcss
分辨率:
"resolutions": {
"postcss": "^8.2.10"
},
但这并没有让我走得太远。
有什么想法吗?
这篇文章帮助了我。
https://www.npmjs.com/package/npm-force-resolutions。
要使用您编写的决议,您应该通过在 package.json
"scripts": {
"preinstall": "npx npm-force-resolutions"
}
在那之后 运行 npm install
它应该覆盖所有嵌套的依赖项
无论如何,由于许多依赖项,它不会工作。好消息是对 postcss 8 的支持已经合并,可能很快就会发布 https://github.com/facebook/create-react-app/issues/9664
或者,您可以使用 yarn audit 而不是 npm 来解决它。
yarn audit --groups postcss
此命令只会忽略来自安全检查的 postcss 包。
切换到 Yarn
让这变得更简单。
rm -rf ./node_modules
rm ./package-lock.json
编辑你的 package.json
:
添加任何其他软件包版本以从 npm / yarn audit
升级
"resolutions":
{
"postcss": "^8.2.10"
},
yarn install
然后 运行 yarn audit
应该产生神奇的词:
0 vulnerabilities found - Packages audited: 999
✨ Done in 1.10s.
由于我的 post 中的 browserslist
包,我设法将审计问题减少到一个中等漏洞:
将 postcss
更新到版本 8.x.x 解决方案导致我遇到构建问题。我是网络开发新手,猜测插件的版本 8 重大更改是罪魁祸首。版本 7.0.36 是为我构建和运行的最新版本 7 postcss
。变更日志指出此版本具有从版本 8 向后移植的 ReDoS 修复程序。我似乎无法解决 browserslist
包问题,除非它在运行时导致 'module not found' 错误。我猜我们必须等待 CRA 团队更新 react-scripts
以获得更彻底的解决方案。