技术深度解析
VSCode 零点击漏洞并非单一 bug,而是由四个相互关联的弱点组成的攻击链,共同构建了一条静默令牌窃取管道。要理解这条攻击链,必须剖析 VSCode 的架构。
攻击链:
1. 工作区信任绕过: VSCode 的“工作区信任”功能旨在在用户打开不受信任的代码时发出警告。然而,该漏洞利用精心构造的 `.vscode/settings.json` 文件,设置 `"security.workspace.trust.enabled": false` 或使用受信任的工作区配置技巧,从而静默禁用信任提示。
2. 自动扩展安装: 恶意仓库包含一个 `.vscode/extensions.json` 文件,推荐一个看似良性的扩展(例如语法高亮器)。当工作区信任被禁用时,VSCode 会自动安装并激活推荐的扩展,无需用户同意。
3. 扩展 API 滥用: 推荐的扩展包含恶意代码,钩入 VSCode 的 `onDidOpenTextDocument` 事件。当开发者打开任何文件时,该扩展便会执行。随后,它利用 `vscode.env` API 访问环境变量,包括 `GITHUB_TOKEN`、`GH_TOKEN`,或通过 `secrets` API 访问存储在密钥链中的令牌。
4. 静默窃取: 被盗的令牌通过扩展代码中嵌入的简单 HTTP POST 请求发送至攻击者控制的服务器。由于 VSCode 扩展与宿主进程拥有相同权限,没有沙箱机制阻止网络访问。
GitHub 仓库参考: 开源社区已在 GitHub 上识别出概念验证仓库(例如 `vscode-zero-click-poc`,目前拥有 4200+ 星标),展示了该攻击链。该 PoC 使用一个用 TypeScript 编写的最小扩展,读取 `process.env.GITHUB_TOKEN` 并将其发送至一个 webhook。该扩展经过混淆处理,以规避简单的静态分析。
数据表:攻击链组件
| 组件 | 漏洞 | CVE(如有) | 影响 | 缓解难度 |
|---|---|---|---|---|
| 工作区信任 | 通过 settings.json 绕过 | CVE-2025-XXXX | 禁用信任提示 | 低(修补设置解析) |
| 扩展自动安装 | 无需用户同意 | CVE-2025-XXXX | 静默扩展激活 | 中(要求明确批准) |
| 扩展 API | 访问环境变量和密钥 | CVE-2025-XXXX | 令牌窃取 | 高(需要沙箱化) |
| 网络窃取 | 无出站限制 | 不适用 | 数据丢失 | 中(添加防火墙提示) |
数据要点: 攻击链的强度取决于其最薄弱的环节。虽然每个单独的漏洞严重程度为中等,但组合起来构成了一个严重级别的漏洞。微软已在 VSCode 1.98 中修补了工作区信任绕过问题,但扩展 API 对环境变量的访问仍然是一个架构性风险。
关键参与者与案例研究
微软(VSCode 团队): 主要责任方。微软已承认该漏洞并发布了紧急补丁(VSCode 1.98.2),强化了工作区信任验证。然而,该公司在解决根本性的扩展 API 设计问题上进展缓慢。内部文件显示,微软正在探索一种“基于能力”的扩展模型,但尚无时间表。
GitHub(微软子公司): GitHub 的令牌系统是攻击目标。GitHub 的回应是建议开发者使用范围有限、过期时间更短的细粒度个人访问令牌(PAT)。然而,这仅是一种缓解措施,而非修复——令牌仍然会被窃取。
开源安全研究人员: 该漏洞最初由一位化名为“@s1r1us”的研究人员在 Twitter 上演示,并发布了详细的分析文章和 PoC。该研究人员指出,该攻击适用于所有主要的 VSCode 衍生品,包括 Cursor 和 GitHub Codespaces,因为它们共享相同的扩展架构。
竞争 IDE:
| IDE | 漏洞状态 | 缓解措施 | 备注 |
|---|---|---|---|
| JetBrains IntelliJ IDEA | 未受影响 | 无远程扩展自动安装 | 不同的扩展模型 |
| Neovim(带 LSP) | 部分受影响 | 需要手动安装插件 | 风险较低,因无自动安装 |
| Zed Editor | 未受影响 | 沙箱化扩展运行时 | 新架构,扩展有限 |
| Eclipse Theia | 受影响 | 共享 VSCode 扩展 API | 相同的漏洞链 |
数据要点: 该漏洞是 VSCode 生态系统独有的,原因在于其激进的扩展自动安装和深度操作系统集成。JetBrains 和 Zed 通过要求每个插件都需用户明确操作来避免此问题。重用 VSCode 扩展的 Eclipse Theia 项目则继承了相同的风险。
行业影响与市场动态
该漏洞重塑了开发者工具的竞争格局。直接影响是 VSCode 面临信任危机——根据 Stack Overflow 2024 年开发者调查,VSCode 占据了超过 70% 的 IDE 市场份额。攻击面巨大。