夜雨聆风学习资料网

ARTICLE · 1295937

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

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 是地址栏的显示逻辑,另外三款是对本地文件目录的限制。浏览器的禁令靠浏览器的架构来执行,一旦被嵌进别的软件,禁令就得由嵌入者重新实现一遍,而嵌入者同时还给它接上了智能体、本地文件和宿主界面。

工具
被突破的规则
手法
截至10月29日
Cursor
页面不能执行命令
隐藏指令经智能体执行
10月1日已修
GitHub Copilot
页面不能改地址栏
页面自报网址,应用不核对
1.1.29 已修
OpenAI Codex
本地文件不能读他处
无目录限制
未修
VS Code
同上
worker 绕过目录检查
未修
Claude Desktop
同上
worker 绕过目录检查
研究者未说明

来源: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 是页面派生出的独立执行上下文,把限制写在“页面”这个入口上,派生出来的上下文就成了旁路。沙箱设计里这是一类很老的错误,检查应当跟着资源走,而不是跟着发起访问的那个对象走。

“信任”二字由谁解释

时间线放在一起看,比漏洞本身更有信息量。

厂商
报告日
回应
距10月29日
Anthropic
7月23日
以 Workspace Trust 为由拒收
98天
Anthropic
7月24日(Noma Security 提交)
受理
97天
OpenAI
7月27日
未回复
94天
微软
9月10日
以 Workspace Trust 为由拒收
49天
Cursor
9月10日
未回复,10月1日静默修复
49天

来源: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/

· 免责声明:漏洞细节、厂商响应与补丁状态均来自研究者公开说明,相关厂商未在本文成稿时公开回应,请以各厂商最新公告为准。

如果这篇帮到了你

转发,比点赞更有用

关注「硅基卫士」

我们下周见

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料