npm audit报got<11.8.5允许重定向至UNIX套接字漏洞如何处理
npm got依赖中度安全漏洞修复说明
- 漏洞详情:版本低于11.8.5的
got组件存在允许请求重定向至UNIX套接字的安全风险,风险等级为中度。 - 默认修复方案的缺陷:直接执行官方提示的
npm audit fix --force命令,会强制安装nodemon@1.3.3版本,属于破坏性变更,会导致现有项目依赖兼容异常,不建议直接使用。
漏洞依赖传递路径
审计输出的完整依赖链路如下:
got <11.8.5 Severity: moderate Got allows a redirect to a UNIX socket fix available via `npm audit fix --force` Will install nodemon@1.3.3, which is a breaking change node_modules/got package-json <=6.5.0 Depends on vulnerable versions of got node_modules/package-json latest-version 0.2.0 - 5.1.0 Depends on vulnerable versions of package-json node_modules/latest-version update-notifier 0.2.0 - 5.1.0 Depends on vulnerable versions of latest-version node_modules/update-notifier nodemon >=1.3.5 Depends on vulnerable versions of update-notifier node_modules/nodemon
无破坏性修复方案
- 方案一:升级开发依赖nodemon到最新稳定版
执行命令npm install nodemon@latest --save-dev,新版nodemon已经更新了内部依赖链,会自动拉取符合安全版本要求的got组件,不会产生破坏性变更。升级完成后重新执行npm audit即可确认漏洞已修复。 - 方案二:强制指定嵌套依赖版本(适合暂时无法升级nodemon的场景)
如果你使用npm 8.3及以上版本,直接在项目package.json中添加overrides字段,强制所有嵌套依赖使用安全版本的got:
如果你使用yarn作为包管理器,添加{ "overrides": { "got": "^11.8.5" } }resolutions字段实现相同效果:
配置完成后重新执行{ "resolutions": { "got": "^11.8.5" } }npm install(或yarn install)安装依赖即可,不会改动现有nodemon的版本。
修复完成后建议本地验证项目核心功能、开发环境启动流程是否正常,确认无兼容问题后再提交代码。
内容的提问来源于stack exchange,提问作者Irtaza Hussain
相关产品推荐
相关产品推荐

