【问题标题】:React Native css-what high severity vulnerabilityReact Native css-什么高危漏洞
【发布时间】:2021-06-11 05:15:38
【问题描述】:

上下文

在我的 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 会导致我在复制项目上运行该命令时所做的破坏性更改。该应用程序能够构建,但在模拟器上运行时引发错误。 (请注意,我是从一个裸 react-native 项目开发的)。

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

【问题讨论】:

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


    【解决方案1】:

    我已经为我的 angular 项目尝试了上述方法,但它考虑 css-what 作为差异依赖而不是包 @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.
    

    【讨论】:

      【解决方案2】:

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

      我在网上查了最新版的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 并安装。

      【讨论】:

        【解决方案3】:

        我在更新 css-what npm update css-what 为我工作时遇到了同样的问题

        【讨论】:

          【解决方案4】:

          css-what 在 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 以验证新条目。

          【讨论】:

            猜你喜欢
            • 2021-09-05
            • 2021-01-14
            • 1970-01-01
            • 2021-06-30
            • 2019-11-22
            • 1970-01-01
            • 2021-08-01
            • 1970-01-01
            • 2023-01-26
            相关资源
            最近更新 更多