postcss 7.0.0 - 8.2.9 严重性:中度正则表达式拒绝服务

IT技术 reactjs create-react-app postcss react-scripts
2021-04-04 14:36:34

在 下创建新项目时create-react-app,您会立即收到有关postcss.

npm 报告的问题:https ://www.npmjs.com/advisories/1693

相关的未决问题可以在这里找到:

该问题已被修补postcss v8.2.10,但在创建新项目时仍然存在,因为react-scripts尚未升级依赖项。

所以,我的问题是我无法再运行构建,因为它们由于漏洞而失败。

由于我迫不及待地等待他们修补它以继续处理我的东西(他们似乎从一年前就意识到了这一点),是否有一些解决方法可以用来解决它?

我尝试添加一个postcss决议package.json

  "resolutions": {
    "postcss": "^8.2.10"
  },

但这并没有让我失望。

任何的想法?

4个回答

这篇文章帮助了我。 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它与工作resolutionspackage.json
2021-06-15 14:36:34
通过删除node_modulespackage-lock.json并遵循您的建议,我设法让它在没有漏洞的情况下工作 - 强制执行此解决方案的唯一问题是您在运行时npm audit fix由于包树无效而出错- 我想我们将不得不等待补丁,但至少这是暂时的,所以谢谢!
2021-06-19 14:36:34

切换到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.

由于browserslist我的帖子中软件包,我设法将审计问题减少到一个中等漏洞

https://stackoverflow.com/a/68046680/1669123

postcss在解决方案中更新到版本 8.xx 会导致我出现构建问题。我是网络开发新手,猜测第 8 版插件的重大更改是罪魁祸首。版本 7.0.36 是postcss为我构建和运行的最新版本 7 更改日志指出,此版本具有从版本 8 向后移植的 ReDoS 修复。如果browserslist没有它在运行时导致“找不到module”错误,我似乎无法解决包问题。我猜我们将不得不等待 CRA 团队更新react-scripts以获得更彻底的解决方案。

或者,您可以使用 yarn audit 而不是 npm 来解决它。

yarn audit --groups postcss

此命令只会从安全检查中忽略 postcss 包。