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

npm高危漏洞修复求助:find-babel-config依赖JSON5存在漏洞

解决npm检测到的JSON5高危漏洞(避免降级expo到1.0.0)

问题背景

npm检测到一处高危安全漏洞,根源是find-babel-config依赖了低于1.0.2版本的JSON5,存在原型污染风险。官方建议的npm audit fix --force会强制安装expo@1.0.0这个老旧版本,属于破坏性变更,无法执行。当前Node版本为v18.14.1,已尝试重新安装/更新npm、删除node_modules和package-lock.json、清理npm缓存、更新expo等操作,问题仍未解决。

npm审计报告(翻译后)

# npm 审计报告

json5  <1.0.2
严重程度:高危
JSON5解析方法存在原型污染风险
可通过 `npm audit fix --force` 修复
执行后将安装 expo@1.0.0,属于破坏性变更
node_modules/babel-preset-expo/node_modules/json5
  find-babel-config  <=1.2.0
  依赖存在漏洞的json5版本
  node_modules/babel-preset-expo/node_modules/find-babel-config
    babel-plugin-module-resolver  2.3.0 - 4.1.0
    依赖存在漏洞的find-babel-config版本
    node_modules/babel-preset-expo/node_modules/babel-plugin-module-resolver
      babel-preset-expo  *
      依赖存在漏洞的babel-plugin-module-resolver版本
      node_modules/babel-preset-expo
        expo  >=14.0.0
        依赖存在漏洞的babel-preset-expo版本
        node_modules/expo

解决方案

方法1:使用npm overrides强制升级依赖(推荐)

在项目根目录的package.json中添加overrides字段,强制指定安全版本的依赖,绕过依赖链限制:

{
  "overrides": {
    "json5": "^1.0.2",
    "find-babel-config": "^2.0.0"
  }
}

添加完成后执行:

npm install

此方法无需降级expo,直接修复底层依赖的漏洞版本。

方法2:升级babel-preset-expo到最新兼容版本

安装babel-preset-expo的最新版本,确认其已修复依赖链问题:

npm install babel-preset-expo@latest --save-dev

随后清理并重新安装依赖:

rm -rf node_modules package-lock.json
npm install

若最新版babel-preset-expo已更新babel-plugin-module-resolver和find-babel-config的依赖,即可解决漏洞。

方法3:临时忽略漏洞(仅应急使用)

若以上方法暂时无法生效,且确认当前环境无漏洞利用风险,可临时忽略该漏洞:
执行命令临时调整审计级别:

npm audit --audit-level=moderate

或在package.json中添加永久忽略配置:

{
  "npm": {
    "audit": {
      "ignore": [
        "GHSA-9c47-m6qq-7p4h"
      ]
    }
  }
}

注意:此方法仅隐藏漏洞提示,未实际修复风险,不建议长期使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 04:39:34