Angular 13更新chart.js与ng2-charts后漏洞无法修复问题咨询
Angular 13更新chart.js/ng2-charts后漏洞处理指南
问题背景
在Angular 13环境中执行npm i chart.js@3.7.1和npm i ng2-charts@3.0.1更新图表依赖后,npm audit检测出8个漏洞,其中部分无法通过常规npm audit fix解决,需针对性处理。
npm audit检测报告(中文翻译)
已更新完成,5秒内审计了1685个包 187个包正在寻求资金支持 执行 `npm fund` 查看详情 # npm 审计报告 @angular/core <11.0.5 严重性: 中等 Angular存在跨站脚本漏洞 修复方案可通过 `npm audit fix --force` 获取 执行后将安装codelyzer@0.0.28,这是一个破坏性变更 node_modules/codelyzer/node_modules/@angular/core codelyzer >=1.0.0-beta.0 依赖易受攻击版本的@angular/core node_modules/codelyzer lodash <=4.17.20 严重性: 严重 lodash存在原型污染漏洞 lodash存在正则表达式拒绝服务(ReDoS)漏洞 lodash存在原型污染漏洞 lodash存在原型污染漏洞 lodash存在命令注入漏洞 无可用修复方案 node_modules/karma-html-reporter/node_modules/lodash karma-html-reporter * 依赖易受攻击版本的lodash node_modules/karma-html-reporter terser 5.0.0 - 5.14.1 严重性: 高 Terser在v4.8.1和v5.14.2之前存在不安全正则表达式使用导致的ReDoS漏洞 修复方案可通过 `npm audit fix` 获取 node_modules/@angular-devkit/build-angular/node_modules/terser @angular-devkit/build-angular 0.1001.0-next.0 - 12.2.17 || 13.0.0-next.0 - 13.3.8 || 14.0.0-next.0 - 14.1.0-rc.3 依赖易受攻击版本的terser node_modules/@angular-devkit/build-angular trim-newlines <3.0.1 严重性: 高 trim-newlines存在不受控制的资源消耗漏洞 修复方案可通过 `npm audit fix` 获取 node_modules/dateformat/node_modules/trim-newlines meow 3.4.0 - 5.0.0 依赖易受攻击版本的trim-newlines node_modules/dateformat/node_modules/meow 8个漏洞(3个中等,4个高风险,1个严重) 处理无需特殊关注的问题,执行: npm audit fix 处理所有可能的问题(包括破坏性变更),执行: npm audit fix --force 部分问题需要人工审核,可能需要更换依赖包。
漏洞处理建议
- @angular/core(codelyzer依赖):不要执行
npm audit fix --force降级codelyzer到0.0.28(会破坏Angular 13兼容性),手动执行npm i codelyzer@^6.0.2(适配Angular 13的稳定版本),更新后重新审计即可解决该漏洞。 - lodash(karma-html-reporter依赖):该漏洞无官方修复方案。若项目不依赖karma-html-reporter生成测试报告,直接执行
npm uninstall karma-html-reporter移除;若需要测试报告功能,替换为karma-mocha-reporter等维护更活跃的插件。 - terser与trim-newlines:直接执行
npm audit fix即可自动修复,这两个修复不会产生破坏性变更,会更新对应依赖到安全版本。
总结
无需全量更新所有依赖,只需针对性处理上述问题即可解决大部分漏洞。优先修复可自动处理的terser和trim-newlines问题,再手动更新codelyzer,最后根据项目需求处理karma-html-reporter相关的严重漏洞。
内容的提问来源于stack exchange,提问作者Laura Díaz
相关产品推荐
相关产品推荐

