element icon indicating copy to clipboard operation
element copied to clipboard

Chore(deps): upgrade async-validator from 1.8.1 to 4.0.7

Open Alanscut opened this issue 4 years ago • 9 comments

Please make sure these boxes are checked before submitting your PR, thank you!

  • [x] Make sure you follow Element's contributing guide (中文 | English | Español | Français).
  • [x] Make sure you are merging your commits to dev branch.
  • [x] Add some descriptions and refer relative issues for you PR.

Upgrade async-validator to the latest version due to the ReDOS vulnerability in version bellow 4.0.4

please see: https://security.snyk.io/vuln/SNYK-JS-ASYNCVALIDATOR-2311201

Alanscut avatar Mar 09 '22 03:03 Alanscut

Hi @xinguanhua , would you mind merging this PR?

Alanscut avatar Apr 12 '22 07:04 Alanscut

@xinguanhua this is a useful pr

Muromi-Rikka avatar Apr 20 '22 05:04 Muromi-Rikka

Hi @xinguanhua ,

目前element-ui唯一使用过async-validator的组件为FormItem: https://github.com/ElemeFE/element/blob/2f4f6962c6a4c1e26b734150edaf74c48ff15849/packages/form/src/form-item.vue#L207-L218

我分析过async-validator 1.8.5 和 4.0.7 版本该接口的使用方式,发现并没有发现变化。为了验证功能没有受到影响,我创建了一个测试项目:https://github.com/Alanscut/ele-async-demo

在这个项目里,我将element-ui 依赖的 async-validator 的版本通过package-lock.json文件中锁定版本的方式替换为了4.0.7版本。 运行这个demo工程之后,表格内容检验功能仍然正常工作。并且新的版本中已经规避了ReDoS攻击。

如果您担心 async-validator 从1.8.5 升级到 4.0.7 的跨度太大,可能引发其他问题,我可以提供更多的验证过程,期待您的意见 😄

Alanscut avatar Apr 25 '22 03:04 Alanscut

把 async-validator 版本从 ~1.8.5 改成 ^1.8.5 也好啊。 我查了,async-validator 这个库 从 1.11.4 及其以下版本依赖 babel-runtime 6.x ,而 babel-runtime 6.x 又依赖 core-js ^2.4.0 ,vue-cli 4.x 最新版本已经把 core-js 依赖到了 ^3.6.5。 所以还是建议 element-ui 把 async-validator 版本提升一下。

guozhenyi avatar Apr 26 '22 02:04 guozhenyi

这个PR什么时候能够Merge啊,不想再在编译过程中看见警告了🤩

Matrix53 avatar Jul 22 '22 05:07 Matrix53

迫切需要这个。

yoyo837 avatar Aug 24 '22 03:08 yoyo837

好像可以通过package.json的overrides选项覆盖依赖版本,不过我也是希望能升级下async-validator的版本

q1uxu avatar Aug 27 '22 19:08 q1uxu

package.json中覆盖依赖的配置如下

 "overrides": {
    "element-ui@^2.15.8": {
      "async-validator": "~4.0.7"
    }
  }

不过override配置只在用npm install的时候才有用,在pnpm install 或者yarn install的时候,overrides不生效,要在pnpm里面写override,但是pnpm的override不支持嵌套。

"pnpm": {
    "overrides": {
      "async-validator": "~4.0.7"
    }
}

好像可以通过package.json的overrides选项覆盖依赖版本,不过我也是希望能升级下async-validator的版本

q1uxu avatar Aug 27 '22 19:08 q1uxu

yarn 有 solutions,pnpm没用过不知道

yoyo837 avatar Aug 28 '22 01:08 yoyo837

please upgrade async-validator for i18n message!!!

AnzhiZhang avatar Dec 19 '22 16:12 AnzhiZhang

waiting for this🥺

justforuse avatar Feb 09 '23 02:02 justforuse

npm overrides 或者 yarn solutions 锁死吧

yoyo837 avatar Feb 09 '23 02:02 yoyo837

npm overrides 或者 yarn solutions 锁死吧

这是一个应该更新的依赖,而不是让开发人员依赖非标准方式更新

AnzhiZhang avatar Feb 09 '23 10:02 AnzhiZhang

npm overrides 或者 yarn solutions 锁死吧

这是一个应该更新的依赖,而不是让开发人员依赖非标准方式更新

道理都懂, 维护人员这边这边有你这个想法, issue 还置于挂这么久吗? 要么缺人要么没缺时间, 要么觉得不必要.

yoyo837 avatar Feb 09 '23 11:02 yoyo837