React Native css-什么高危漏洞

时间:2021-06-11 05:15:38

标签: reactjs react-native react-native-svg react-native-ui-kitten

上下文

在我的 react-native 应用程序中,我遇到了一个关于名为 css-what 的包的严重漏洞。它显然导致了其他 4 个漏洞,因为它们直接或间接地依赖于 css-what。这是我在执行 npm audit

后在控制台上获得的以下输出
css-what  <5.0.1
Severity: high
Denial of Service - https://npmjs.com/advisories/1754
fix available via `npm audit fix --force`
Will install react-native-svg@9.12.0, which is a breaking change
node_modules/css-what
  css-select  <=3.1.2
  Depends on vulnerable versions of css-what
  node_modules/css-select
    react-native-svg  >=9.13.0
    Depends on vulnerable versions of css-select
    node_modules/react-native-svg
      @ui-kitten/components  >=5.0.0-alpha.1
      Depends on vulnerable versions of react-native-svg
      node_modules/@ui-kitten/components
      @ui-kitten/eva-icons  >=5.0.0-alpha.1
      Depends on vulnerable versions of react-native-svg
      node_modules/@ui-kitten/eva-icons

因此,从输出中可以看出,css-what 导致包 react-native-svg 存在漏洞,并且由于我安装的设计系统 ui-kitten 依赖于 react-native-svg,因此它随后具有漏洞。

我查看了 css-what 包以及可以看到的漏洞 here。我知道该漏洞的严重性很高,因为它可能导致拒绝服务。

我尝试了什么

我复制了我的项目,因为我知道运行 npm audit fix --force 会导致我在重复项目上运行该命令时所做的破坏性更改。该应用程序能够构建,但在模拟器上运行时抛出错误。 (请注意,我是从一个裸反应原生项目开发的)。

文档给出的说明是将 css-what 更新为 5.0.1,但我不知道如何去做。因此,我希望有人能够帮助我。

4 个答案:

答案 0 :(得分:0)

我已经为我的 angular 项目尝试了上述方法,但它考虑了 css-what 作为 diff 依赖项,而不是 @angular-devkit/build-angular 包内的依赖项。

12.1.0-next.6
| `-- css-minimizer-webpack-plugin@3.0.1
|   `-- cssnano@5.0.6
|     `-- cssnano-preset-default@5.1.3
|       `-- postcss-svgo@5.0.2
|         `-- svgo@2.3.0
|           `-- css-select@3.1.2
|             `-- css-what@4.0.0
`-- css-what@5.0.1 ```
 
tried, see in above. its taking separate css-what thats should not be the case.
still the issue exists.

答案 1 :(得分:0)

我遇到了同样的问题,所以我执行以下操作:

我在网上查了最新版本的css,没有漏洞,安装为--save。

npm install css-what@5.0.1

然后安装 npm-force-resolutions:

npx npm-force-resolutions

添加到我的 package.json:

"resolution": {"css-what": "^ 5.0.1"}

然后像往常一样安装依赖项:

npm install


如果您收到以下错误:

npm ERR! Invalid Version: ^5.0.1

然后只需删除 package.json 中的 ^ 并重试 npm-force-resolution 并安装。

答案 2 :(得分:0)

我在更新 css 时遇到了同样的问题 - npm update css-what 对我有用

答案 3 :(得分:-1)

css-在 5.1.0 之前的版本中具有 DOS attack vulnerability。您可以在 package-lock.json 中发现这是来自 css-select 的传递依赖项。

您需要先安装您的依赖项的非易受攻击版本,所以在这种情况下

npm install --save css-what@5.0.1

完成后,您需要在 package.json 中添加解析策略。所以,只需在 package.json 的末尾添加以下键

"resolutions": { "css-what": "^5.0.1" }

此后只需运行 npm install 并运行 npm audit 以查看您的修复是否有效。您可以交叉检查您的 package-lock.json 以验证新条目。