You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ViteJS项目Semver依赖存7个中度漏洞,求修复方案

修复ViteJS项目中Semver正则表达式拒绝服务漏洞

能否更新至Semver最新版本?

完全可以。Semver的漏洞修复版本(如7.5.3及以上)属于向后兼容的补丁/小版本更新,不会破坏现有代码逻辑,只要你的项目没有直接依赖semver的废弃API,升级不会有问题。

可行修复方法

1. 针对包管理器使用正确的强制依赖字段

你之前用resolutions无效,大概率是因为用的是npm而非Yarn——resolutions是Yarn的专属字段,npm需要用overrides:

  • 如果用npm(8.3.0及以上版本),在package.json中添加:
    "overrides": {
      "semver": "^7.5.3" // 或最新稳定版,比如^7.6.0
    }
    
  • 如果用Yarn,保留resolutions字段即可:
    "resolutions": {
      "semver": "^7.5.3"
    }
    

2. 重新安装依赖

删除node_modules、package-lock.json(npm)或yarn.lock(Yarn),然后执行:

# npm用户
npm install

# Yarn用户
yarn install

3. 验证修复效果

运行以下命令确认所有子依赖都已使用指定版本的semver:

# npm
npm ls semver

# Yarn
yarn why semver

再执行npm audit或yarn audit检查漏洞是否已消除。

4. 升级上游依赖(更稳妥的长期方案)

直接将涉及的上游依赖(@babel/core、@vitejs/plugin-react、eslint系列插件)更新到最新稳定版——这些包的维护者通常会在新版本中主动依赖修复后的semver,从根源上解决问题。执行:

# 更新单个依赖
npm update @babel/core @vitejs/plugin-react eslint eslint-plugin-react

# 或批量更新所有依赖(谨慎使用,注意兼容性)
npm update

5. 应急方案(不推荐,仅临时修复)

如果上述方法都无效,可以手动修改package-lock.json:

  • 搜索所有包含"semver"的条目,将version字段改为^7.5.3,并更新对应的resolved和integrity值
  • 修改后重新执行npm install

内容的提问来源于stack exchange,提问作者Pimpus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 22:07:37