修复glob-parent正则拒绝服务漏洞遭遇依赖冲突的技术求助
修复glob-parent正则拒绝服务漏洞的依赖冲突解决方案
问题背景
glob-parent 5.1.2之前版本存在正则拒绝服务漏洞,尝试升级时遇到依赖冲突:webpack-dev-server@3.11.2通过chokidar@2.1.8的传递依赖要求glob-parent@3.1.0,导致无法直接升级到glob-parent@5.1.2。
可行修复方案
方案1:升级webpack-dev-server到4.x版本
从提供的yarn.lock来看,当前已存在webpack-dev-server@4.11.1的记录,该版本依赖的chokidar@3.5.3要求glob-parent@~5.1.2,正好满足漏洞修复需求。
- 修改package.json中的webpack-dev-server版本为
^4.11.1(或更高兼容版本) - 执行命令重新安装依赖:
yarn install - 验证依赖:检查yarn.lock中glob-parent是否统一为5.1.2版本
方案2:使用Yarn resolutions强制指定glob-parent版本
如果暂时无法升级webpack-dev-server,可以通过Yarn的resolutions功能强制所有依赖使用安全版本的glob-parent:
- 在package.json中添加resolutions字段:
"resolutions": { "glob-parent": "^5.1.2" } - 执行命令重新安装依赖:
yarn install --force - 验证:执行
yarn list glob-parent确认所有依赖树中的glob-parent都已升级到5.1.2
方案3:升级watchpack以替换chokidar@2.x依赖
watchpack@1.7.5默认可选依赖chokidar@3.4.1和watchpack-chokidar2@2.0.1,可通过升级watchpack到更高版本或强制其使用chokidar@3.x:
- 修改package.json中的watchpack版本为
^2.4.0(或更高版本,该版本默认使用chokidar@3.x) - 执行
yarn install重新安装,减少对chokidar@2.x的依赖
验证修复
执行以下命令确认glob-parent版本:
yarn list glob-parent
确保所有实例均为5.1.2或更高版本,同时运行项目验证功能正常。
内容的提问来源于stack exchange,提问作者Aniket Tiwari
相关产品推荐
相关产品推荐

