4

语境

在我的 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 包和可以在此处看到的漏洞。我知道该漏洞的严重性很高,因为它可能导致拒绝服务。

我试过的

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

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

4

4 回答 4

0

我已经为我的 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.
于 2021-06-24T05:42:43.740 回答
0

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

于 2021-07-15T16:59:40.003 回答
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 并安装。

于 2021-07-10T22:02:29.283 回答
-1

css-what 在 5.1.0 之前的版本中存在DOS 攻击漏洞。你可以在你的 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-06-12T23:43:50.280 回答