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

执行npm audit fix --force后漏洞数量先上升后回落问题咨询

npm audit fix --force 漏洞数先升后降成因解析

核心运行逻辑前提

npm audit fix --force会默认跳过语义化版本(SemVer)兼容性校验,允许对依赖执行跨大版本升级操作,同时会关闭npm内置的依赖安全保护机制,你执行命令时的警告就是该逻辑的触发提示:

PS C:\WORKSPACE\REACT\training\new\hey> npm audit fix --force
npm WARN using --force Recommended protections disabled.
npm WARN audit Updating react-scripts to 4.0.3,which is a SemVer major change.
npm WARN deprecated @hapi/bourne@1.3.2: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/topo@3.1.6: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated querystring@0.2.1: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated sane@4.1.0: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added

分阶段原因说明

  • 第一次执行漏洞数上升:初始的23个漏洞基本都来自你项目原版本react-scripts的间接依赖,npm首次扫描后判断将react-scripts跨大版本升级到4.0.3是修复这些漏洞的最优路径,因此强制执行了升级。但react-scripts 4.0.3本身的依赖树内置了大量已废弃、存在公开漏洞的旧版本子依赖(就是日志中列出的@hapi系列包、chokidar@2.x等),这些依赖之前不在你的项目依赖树中,升级后被引入,因此扫描出的漏洞总量涨到56个。
  • 第二次执行漏洞数回落:第二次执行命令时,npm会基于升级到react-scripts 4.0.3后的依赖树做漏洞扫描,此时它会发现新增的33个漏洞都是react-scripts 4.0.3的内置子依赖漏洞,而这些子依赖的版本被react-scripts的package.json锁死,没有符合修复要求的更新版本可用,也没有其他可执行的修复路径。因此npm会撤销上一次--force执行的跨大版本变更,将react-scripts回滚到你初始的版本,依赖树回到初始状态,漏洞数自然回落回23个。

额外说明:你初始的23个漏洞本身就属于无法通过npm audit fix甚至--force自动修复的类型,大多是间接依赖的漏洞且没有可用的兼容修复版本,如果不影响项目正常运行可以忽略,也可以通过npm 8.3+支持的overrides配置手动指定子依赖的安全版本来修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:36:03