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

继承项目执行npm install遇高风险漏洞,如何解决?

解决npm审计中json5高危漏洞的方案

针对你遇到的json5<1.0.2原型污染漏洞,且修复提示会强制降级babel-core到4.7.16(破坏性变更)的问题,提供以下几种可行方案:

方案1:用npm overrides强制升级json5(推荐,无破坏性变更)

如果你的npm版本在8.3.0及以上,可以通过overrides字段强制让所有依赖树中的json5升级到安全版本,无需降级babel-core:

  1. 在项目根目录的package.json中添加如下配置:
    "overrides": {
      "json5": "^1.0.2"
    }
    
  2. 重新执行npm install,此时npm会强制替换所有依赖链中的旧版json5为1.0.2或更高的安全版本。
  3. 执行npm audit验证漏洞是否已修复。

方案2:升级babel到稳定版本(根治问题,适合长期维护)

当前项目使用的babel-core版本(5.8.20-7.0.0-beta.3)非常陈旧,属于测试版或早期版本,建议直接升级到稳定的babel 7系列:

  1. 卸载旧版babel依赖:
    npm uninstall babel-core babel-register
    
  2. 安装新版babel核心包及常用预设:
    npm install @babel/core @babel/cli @babel/register @babel/preset-env --save-dev
    
  3. 更新项目中的babel配置文件(如.babelrc或babel.config.js),将旧语法替换为babel 7规范:
    例如,旧的.babelrc可能是:
    {
      "presets": ["env"]
    }
    
    替换为:
    {
      "presets": ["@babel/preset-env"]
    }
    
  4. 测试项目的编译和运行,检查是否有语法或调用方式的兼容性问题,按需调整代码。

方案3:临时忽略漏洞(仅紧急情况使用)

如果暂时无法修改依赖,且确认项目不会处理不可信的JSON5输入(漏洞触发条件),可以临时忽略审计警告:

  • 执行npm audit --production仅检查生产依赖的漏洞(如果该json5是开发依赖);
  • 或在package.json中添加"scripts": {"preinstall": "npm set audit false"},但不推荐长期使用,会隐藏其他安全风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:25:53