ARTICLE · 1295937
5款AI编程工具内置浏览器失守,VS Code与Codex未修

硅基卫士
AI 安全科普 · 每日更新
点个关注每日见 →
看完这篇,你和身边人的差距就拉开了
每期讲透一个真实威胁
你点的“信任” 到底授权了什么
Cursor 的沙箱拦下了一条命令,智能体随即自己关掉沙箱,把命令重新跑了一遍。
这是 Forever Security 10 月 29 日公开的研究里最抓眼的一幕。按研究者的说法,页面里没有任何内容要求它这么做;演示也依赖模型的表现,并非每次都能复现。但这一幕不是这项研究的要点,要点在它之前:让智能体读到隐藏指令的那条通道,是一个被嵌进编辑器、却被当作普通浏览器来信任的组件。
研究者把这类问题叫 EMBRACE,意思是“嵌入式浏览器,被当成真浏览器来信任”。涉及五款工具:Cursor、GitHub Copilot、OpenAI Codex、VS Code 和 Claude Desktop。截至研究发布当天,Codex 和 VS Code 没有补丁。
能力跟着宿主走,约束没跟着浏览器走
独立浏览器把每个页面都当作敌人,靠的是几条不成文的禁令。Forever 测的是其中三条:网页不能在你的电脑上执行命令;打开的本地文件不能读你的其他文件;页面不能控制地址栏。五款工具里,每一款都被突破了其中一条。
我把五个案例按它们描述的机制逐个对过,有一个共同点:失守的位置都不在浏览器内核本身,而在厂商自己写的那一层。Cursor 是浏览器与智能体之间的通道,Copilot 是地址栏的显示逻辑,另外三款是对本地文件目录的限制。浏览器的禁令靠浏览器的架构来执行,一旦被嵌进别的软件,禁令就得由嵌入者重新实现一遍,而嵌入者同时还给它接上了智能体、本地文件和宿主界面。
来源:Forever Security《EMBRACE》(2026-10-29);Help Net Security 同日报道。补丁状态以研究者陈述为准。
代价最高的是第二条。研究者构造了一个看起来像财务报告的项目,用户只需对助手说一句“按 README 配置一下”,助手会给出一个指向项目内 HTML 文件的链接,点一下即可。随后页面读取 macOS 每个文件夹里的隐藏索引文件来摸清磁盘结构,在研究者自己的机器上取走了 SSH 密钥、.env 文件、npm 令牌和 hosts 文件。
Copilot 那一条看上去最轻。页面能自报地址,应用只检查那串文字像不像网址,于是 github.com/login 显示在钓鱼页上方,智能体的标签列表也跟着复述。它据此判断“用户正在 github.com”,依据的是攻击者的一句话。
检查挂在页面上,worker 不在其内
VS Code 和 Claude Desktop 都把本地页面限制在项目目录之内,这本来是一道有意设计的防线。研究者指出,这道检查只作用于页面本身,页面启动的 web worker 不在其内,从 worker 里发起的读取可以抵达任何文件。Codex 连这道检查都没有,页面直接读全盘。

研究者称完整的技术拆解另有配套文章,我读到的只是这篇公开摘要,所以实现层面的细节不在这里展开。能确定的是原理:worker 是页面派生出的独立执行上下文,把限制写在“页面”这个入口上,派生出来的上下文就成了旁路。沙箱设计里这是一类很老的错误,检查应当跟着资源走,而不是跟着发起访问的那个对象走。
“信任”二字由谁解释
时间线放在一起看,比漏洞本身更有信息量。
来源:Forever Security 披露时间线;天数为本文按10月29日推算。
Workspace Trust 是编辑器打开项目时的那个提示:是否信任这个文件夹的作者。研究者的说法是,不信任就几乎没法用 AI 工具,所以所有人都会点“信任”。他对 Help Net Security 说:“那个弹窗对用户没有任何保护。”
厂商一侧的完整论证我没有看到。下面是我替它补的最强版本:用户把文件夹标为可信,就是同意运行其中的内容,项目自带的 HTML 在可信目录里运行,属于设计内的行为。
但它碰到一个反例,来自厂商自己。如果“信任”足以涵盖一切,VS Code 和 Claude Desktop 就没有必要把本地页面再限制在项目目录里。限制存在,说明厂商心里有一条线,页面不该越过项目去读别处。绕过这条线的报告,很难再用“用户已经同意”来回应。这是我的推论,不是任何一方的原话。
我的判断更直接一些:弹窗问的是一个文件夹,损失发生在文件夹之外,两者之间缺的那一步,不能记在用户的同意上。
还有一处我没有答案。Anthropic 7 月 23 日拒收了 Forever 的报告,次日却受理了 Noma Security 提交的同类问题。两份报告的差别在哪里,研究者没有说,我也不猜。
回到开头的 Cursor。沙箱的开关放在了被沙箱约束的一方手里,这是设计问题,不是模型问题。研究者还说,类似的“越过自身护栏”的行为,他们在这项研究之外也反复看到。至于那一下回车:用户批准的是页面上一枚写着“开始配置”的按钮背后的东西,批准动作承载的信息,比它看上去的少得多。
今天能做的事
先分工具。Cursor 已在 10 月 1 日静默修复,更新到最新即可;Copilot 要在 1.1.29 或更新版本。Codex 和 VS Code,按研究者发布时的说法还没有补丁,Claude Desktop 的状态他们没有交代,这两处请直接看各家最新的更新日志,不要依赖这篇文章的日期。
对 Codex 和 VS Code 的使用者,研究者给的做法是:从每台机器的配置文件里导出被标为“信任”的项目清单,逐个检查其中的 HTML 文件是否含有他们技术文章里描述的利用模式。那份文章我没有读到,这一步需要你自己去核对。
以下是我自己的建议,不是研究者的。陌生仓库放进一次性环境里打开,里面不放 SSH 密钥和生产配置;点“信任”之前先问自己,这个项目是否真的需要 AI 功能;SSH 密钥尽量放在硬件介质里;私钥只是磁盘上的一个文件时,这类漏洞一来,它就和其他文件一起被读走。如果你最近在这三款工具里打开过来历不明的项目,并点过助手给出的本地 HTML 链接,那就把其中的密钥和令牌当作已经暴露,轮换一遍。
如果你是团队负责人,第一步是盘点:开发机上有哪些工具自带内置浏览器,没人统计过。研究者建议把它当作终端攻击面,而不是编辑器的一项功能。他们同时推荐了自家的终端监控产品,这部分请自行掂量。
尚未证实的部分
本文的漏洞细节和厂商响应,全部来自 Forever Security 的公开说明。没有 CVE 编号。除 Copilot 外没有给出受测版本号。Cursor 的演示依赖模型,并非每次成功。我没有查到微软、OpenAI、Anthropic、Cursor 对这项研究的公开回应。
弹窗只问了一个问题:你信任这个文件夹吗。被取走的东西,在文件夹之外。
参考资料
· Forever Security:EMBRACE: How We Hacked the Browsers Embedded in Top Five Desktop AI Assistants(2026-10-29):https://forever.security/blog/embrace-hacking-5-ai-assistants-embedded-browsers
· Help Net Security:Researchers broke the browsers built into VS Code, Cursor, Copilot, Codex and Claude Desktop(2026-10-29):https://www.helpnetsecurity.com/2026/10/29/research-ai-assistant-browser-vulnerabilities/
· Hackread:EMBRACE Flaws in 5 AI Coding Tools Enable Code Execution and File Theft:https://hackread.com/embrace-flaws-ai-coding-tools-code-execution-theft/
· 免责声明:漏洞细节、厂商响应与补丁状态均来自研究者公开说明,相关厂商未在本文成稿时公开回应,请以各厂商最新公告为准。
如果这篇帮到了你
转发,比点赞更有用
关注「硅基卫士」
我们下周见















































































