Vant 是一个轻量、可定制的移动端组件库,于 2017 年开源。
目前 Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本和支付宝小程序版本。
Vant 2 版本:https://vant-ui.github.io/vant/v2/#/zh-CN/home
Vant 3 版本:https://vant-ui.github.io/vant/v3/#/zh-CN/home
Vant 4 版本:https://vant-ui.github.io/vant/#/zh-CN/home
漏洞描述:
由于开发者团队成员的 npm token被窃取,攻击者向 Vant 组件植入挖矿代码,当用户安装投毒版本时会下载并执行挖矿程序xmrig(钱包地址:475NBZygwEajj4YP2Bdu7yg6XnaphiFjxTFPkvzg5xAjLGPSakE68nyGavn8r1BYqB44xTEyKQhueeqAyGy8RaYc73URL1j),并窃取用户云服务凭据( /.aliyun/config.json、/.hcloud/config.json 以及 ~/.tccli/default.credential文件)并发送到攻击者可控的服务器地址。
影响范围:
2.13.3 <= npm版本 <= 2.13.5
3.6.13 <= npm版本 <= 3.6.15
4.9.11 <= npm版本 <= 4.9.14
修复建议:
开发者团队当前已弃用上述版本,如使用过上述版本的请进行自检
参考链接:
https://github.com/youzan/vant/issues/13275
https://github.com/youzan/vant/discussions/13273
针对本次事件的建议:
- 及时更新和验证版本:
使用者在安装或更新开源软件时,应始终关注官方渠道发布的最新版本,避免使用来路不明的版本。
验证所安装软件的签名和哈希值,确保软件的完整性和真实性。 - 审查依赖项:
在使用开源软件时,仔细审查其依赖项,确保没有包含恶意代码或不受信任的库。
定期检查依赖项的更新日志和安全公告,以及时发现并修复潜在的安全漏洞。 - 限制npm token权限:
对于开源项目的维护者,应严格限制npm token的权限,避免将其泄露给不受信任的人员。
定期更换npm token,以减少被窃取的风险。 - 使用安全的构建和部署流程:
采用自动化的构建和部署流程,确保在构建和部署过程中使用安全的工具和配置。
对构建和部署环境进行定期的安全审计和漏洞扫描。 - 监控和检测异常行为:
部署监控工具来检测系统中的异常行为,如异常的资源使用、网络活动等。
设置警报系统,以便在检测到可疑行为时及时采取措施。 - 保持警惕并关注安全公告:
使用者应时刻保持警惕,关注开源社区发布的安全公告和漏洞信息。
及时了解并应用针对已知漏洞的补丁和修复措施。 - 采用多因素身份验证:
对于访问关键资源和系统的账户,采用多因素身份验证以增加安全性。
确保所有账户都使用强密码,并定期更换密码。