mssql依赖链中旧版jsonwebtoken触发npm audit安全问题求解决方案
针对你遇到的mssql依赖链(mssql > tedious > @azure/identity > @azure/msal-node > jsonwebtoken)触发的GHSA-27h2-hvpr-p74q安全漏洞,以下是几个经过验证的可行解决办法:
直接升级顶层依赖包
优先尝试将mssql升级到最新稳定版本,官方通常会及时更新依赖链中的安全问题。执行命令:npm install mssql@latest升级完成后重新运行
npm audit,确认漏洞是否已修复。如果mssql的最新版本已经更新了tedious或其下游依赖,就能自动引入安全版本的jsonwebtoken。强制指定安全版本的jsonwebtoken
如果上层依赖暂未更新,可通过npm的overrides(npm 8.3+支持)强制项目使用安全版本的jsonwebtoken。在项目的package.json中添加以下配置:"overrides": { "jsonwebtoken": "^9.0.2" }保存后执行
npm install,该配置会强制所有依赖路径中的jsonwebtoken使用指定的安全版本。注意:升级后需测试项目核心功能,确认无兼容性问题(jsonwebtoken 9.x相对于8.x有部分API变更,若依赖链中存在旧版API调用需留意)。若使用Yarn包管理器,可改用
resolutions字段实现同样效果:"resolutions": { "jsonwebtoken": "^9.0.2" }执行
yarn install即可生效。临时规避(仅限紧急场景)
若上述方案暂时无法实施,可在npm audit中使用--audit-level=moderate(或更低级别)跳过该漏洞的告警,但这只是临时手段,不建议长期使用,仍需尽快升级到安全版本。
内容的提问来源于stack exchange,提问作者user2926764

