微软网页版 VS Code 曝安全漏洞:点击链接就能窃取私有仓库 Tokens
It之家4小时前

IT之家 6 月 3 日消息,安全研究员 Ammar Askar 昨日(6 月 2 日)发布推文,公开了一个概念验证(PoC)漏洞,指出 GitHub 浏览器版 VS Code 存在安全漏洞,用户点击链接后,GitHub OAuth tokens 可能被黑客掌握。IT之家援引博文介绍,该漏洞受存在于 GitHub 浏览器版 VS Code(github.dev)的 Webview 机制中。Webview 本应用沙箱隔离 Jupyter Notebook、Markdown 预览等内容,但为了让快捷键在其中继续生效,VS Code 会把按键事件转发到主编辑器窗口。Askar 发现,页面内 JavaScript 可以伪造这些按键事件,并被主窗口当作真实输入处理。PoC 仓库包含一个 Jupyter Notebook 和本地工作区扩展。Notebook 中的脚本会等待 VS Code 弹出安装扩展提示,再模拟 Ctrl+Shift+A 接受安装。本地扩展随后利用 VS Code 对工作区扩展的隐式信任,注册自定义快捷键,并触发第二个扩展静默安装。第二个扩展会从编辑器会话中读取 GitHub OAuth Token,调用 GitHub API 查询私有仓库名称,并把仓库列表和被窃取的 Token 显示在信息框中。原文称,整个过程不到 30 秒,用户只需要打开恶意 Notebook 链接。该问题也影响桌面版 VS Code,但门槛更高,攻击者需要让目标克隆仓库并打开 Notebook。原文还称,如果桌面 VS Code Webview 中存在其他 XSS,同类技术可能进一步带来 RCE 风险。Askar 没有联系微软 MSRC 协调披露。他称此前报告 VS Code 漏洞时,微软静默修复问题,却未给出致谢,并把问题归类为没有安全影响。原文还提到,其他研究员报告过 VS Code 内置 Git 扩展命令注入、Jupyter Notebook 扩展 XSS,也曾被判定不符合奖励范围。缓解方式方面,Askar 建议清除浏览器中 github.dev 的本地站点数据。这样再次打开 github.dev 时,用户会先看到登录提示,从而有机会退出可疑链接。若用户曾运行该 PoC,还需要从 github.dev 环境中卸载对应扩展。微软发稿时尚未就此次披露发布公开声明。参考https://blog.ammaraskar.com/github-token-stealing/