重大安全警报:VS Code 最流行主题插件 Material Theme 被曝含恶意代码

事件概述
Material Theme 是一款广受欢迎的 VS Code 主题插件,安装量超过 390 万次。然而,2025 年 2 月,安全研究人员发现其代码库中存在恶意行为,特别是在一个名为 Sanity.io 的依赖项中。该依赖项自 2016 年起未更新,可能已被攻破,潜在地导致用户数据外泄。微软迅速响应,于 2 月 25 日从市场中移除该插件,并封禁了发布者 Equinusocio。开发者 Mattia Astorino 随后辩称,问题仅在于一个过时的依赖项,修复简单,但微软未予通知,这一说法引发了社区争议。
时间线
- 2025 年 2 月: 安全研究人员发现并报告恶意代码
- 2025 年 2 月 25 日: 微软确认问题,移除插件并封禁发布者
- 2025 年 2 月 26 日: 公众报告和文章开始详细描述事件
- 2025 年 2 月 27 日 社区继续讨论,部分开发者尝试分叉存储库以提供安全版本,如 t3dotgg 的分叉 (vsc-material-but-i-wont-sue-you)。
详细报告
引言
2025 年 2 月,VS Code 的 Material Theme 插件因被发现包含恶意代码而从市场中移除,这一事件震动了开发者社区。该插件由 Equinusocio 发布,安装量高达 390 万次,涉及广泛的用户群体。本报告将详细梳理事件的时间线、恶意代码的行为、相关方的反应以及对软件供应链安全的影响。
背景
Material Theme 是 Visual Studio Code(VS Code)的一个主题扩展,由 Mattia Astorino(化名 Equinusocio)开发。该插件提供多种定制化选项,深受开发者喜爱,截至事件发生时,其安装量超过 390 万次,相关扩展”Material Theme Icons — Free”安装量超过 500 万次,总计涉及 1300 万次安装。
恶意代码的发现与行为
2025 年 2 月,安全研究人员 Amit Assaraf 和 Itay Kruk 在对 VS Code 扩展进行安全扫描时,发现 Material Theme 插件的代码库中存在多个可疑标记,表明可能存在恶意意图。他们将发现报告给微软,微软的安全研究团队随后确认了这些指控,并发现了额外的可疑代码。
相关细节总结
方面 | 详情 |
---|---|
扩展名称 | Material Theme — Free |
安装量 | 3,927,094 |
恶意组件 | 存在于受损的 Sanity.io 依赖项中 |
发布者 | Equinusocio(真名 Mattia Astorino) |
相关扩展 | Material Theme Icons — Free,安装量超过 500 万次 |
发布者总安装量 | 13,177,186 |
市场行动 | 从 VS Code 市场移除,微软移除与 Mattia Astorino 相关的其他发布者 |
影响 | 暴露约 400 万开发者和无数组织 |
分析报告来源 | extensiontotal.com 报告 |
安全建议 | 使用 IOCs 检查环境感染,或联系 extensiontotal.com |
微软的反应
微软在确认恶意代码后采取了果断措施:
- 于 2025 年 2 月 25 日从 VS Code 市场移除 Material Theme — Free 和 Material Theme Icons — Free
- 封禁发布者 Equinusocio,禁止其在 VS Marketplace 上发布任何扩展
- 从所有运行该扩展的 VS Code 实例中自动卸载
微软在一份声明中明确表示,移除行动与版权或许可问题无关,仅因潜在的恶意意图Hacker News帖子。
开发者的回应
Mattia Astorino 在事件后发表声明,试图解释问题。他声称,唯一的问题在于一个自 2016 年起未更新的 Sanity.io 依赖,用于显示发布说明。他进一步辩称,这一依赖可能已被攻破,但如果微软提前通知,他只需 30 秒即可修复。然而,微软未与其联系,直接移除扩展,这一举动引发了社区的争议(Bleeping Computer 报道)。
个人见解
作为一名开发者,我不禁思考,开发者社区是否需要更强有力的工具来监控依赖项的安全性。Astorino 的辩解虽有一定道理,但未及时更新依赖确实是疏忽,而微软的快速反应虽保护了用户,却也可能让一些无辜用户措手不及。或许,未来可以建立更透明的沟通机制,既保护用户,又给开发者改正的机会。
结论
Material Theme 插件事件是软件供应链安全的一个警示案例,提醒开发者定期更新依赖,并呼吁市场运营商加强安全审查。事件仍在持续,未来可能会有更多细节披露。
关键引用
更多文章








