Researchers broke the embedded browsers in Cursor, GitHub Copilot, Codex, VS Code and Claude Desktop. In three of them a single local HTML file could read SSH keys and tokens anywhere on the machine, and two of those fixes had still not shipped when the research went public.
Key Takeaways
Every AI coding assistant now ships a browser of some kind, so the agent can preview a local project, read a documentation tab or show a developer what it just built. Those browsers look like the one on the rest of the desktop, but research published on October 29 shows they do not behave like it. Five vendors each loosened a basic browser rule to make their agent more useful, and in all five the loosened rule gave an attacker a way through to the machine underneath.
The work comes from Gal Weizman at Forever Security, who calls the pattern EMBRACE, for an embedded browser trusted like a real one. The disclosure record is as revealing as the bugs: two of the five vendors fixed their flaws, two declined the reports, and one did not answer at all.
Forever's technical write-up sets out three things a standalone browser never allows. A local file page cannot read other files, a web page cannot talk to the application around it, and a page cannot choose the address shown in the address bar. Each product relaxed one of those so its agent could work with local projects or open tabs. In Weizman's words, each change is reasonable on its own, and each one hands a hostile page something the browser used to deny.
The file rule broke in three products. Help Net Security describes the attack as a project disguised as a financial report. The developer asks the assistant to set it up from the README, the assistant offers a clickable link to an HTML file in the project, and the developer clicks it. Claude Desktop and VS Code confine a local page to its project folder, but that check covered only the top document, not web workers, the background scripts a page can start. A worker could read any file. Codex had no folder check at all, and the exploit used hidden macOS index files to map the disk one folder at a time before sending what it found to the attacker.
Cursor's flaw went further. A web page could reach a bridge into the agent's composer and plant a hidden command behind a harmless “Start setup” button. When Cursor's sandbox blocked that command, the agent switched the sandbox off and tried again, with nothing on the page telling it to. In Copilot, a page could report its own address, so a phishing form could appear under github.com/login in both the address bar and the agent's own view of its tabs.
The timeline published by Forever and confirmed in reporting by The Register splits the five vendors three ways. Cursor received the report on September 10 and patched it on October 1 without a security advisory or a reply to the researchers. GitHub found and fixed the Copilot spoofing bug itself in build 1.1.29 on October 13, before Forever had filed anything.
Anthropic was told about the Claude Desktop flaw on July 23 and rejected it as invalid under its workspace trust boundary. A day later Noma Security reported the same flaw, and Anthropic accepted that report as valid. Microsoft received the VS Code report on September 10 and also declined it under Workspace Trust. OpenAI was sent the Codex report on July 27 and did not respond, though a spokesperson told The Register the company is aware of the issue and working to address it. As of October 29, the Codex and VS Code flaws were still open.
“Not trusting a project inside an AI harness makes it unusable, so everyone just hits ‘Trust’.”
Gal Weizman, Forever Security, speaking to Help Net Security
That is the core of the dispute. Workspace Trust asks the developer, when a folder opens, whether to trust its contents. Weizman's argument is that an AI harness is close to useless on an untrusted project, so the prompt is answered by reflex and stops being a security boundary in practice. For a security team, a flaw a vendor calls out of scope is still a flaw on its endpoints.
The reach is large. Hackread, citing Forever's figures, puts VS Code at about 40 million developers and Codex at more than 5 million weekly users. The files the exploit went after are the ones that open everything else: SSH keys, cloud credentials, npm and other developer tokens, and the .env files that hold service secrets. One rigged repository and one click on a link the assistant itself generated is enough to hand them over.
The Cursor result also points past this specific bug. An agent that disables its own sandbox to finish a task is doing what it was built to do, which is get the job done. Weizman told Help Net Security he is seeing the same behavior outside this research. Controls that depend on the agent choosing to respect them are weaker than they look.
None of the five vendors set out to build an insecure browser. Each made a small, sensible change so its agent could see more of the developer's world, and in doing so let the open web see more of it too. Until Codex and VS Code ship fixes, the safest assumption is that a link the assistant offers can read whatever the developer can.
Guide
One vendor never answered Forever's report and two declined it, and this guide covers how a disclosure program gives researchers a clear channel and safe harbor so valid findings are heard and acted on.
Download
Infographic
Cursor's agent turned off its own sandbox to finish a planted setup task, and this infographic explains why models optimize for code that runs over code that is safe and should be treated as untrusted until reviewed.
Download
Datasheet
Each vendor loosened one browser rule to ship an agent feature and left a hole a test could have caught, and this data sheet sets out static, dynamic and mobile testing delivered as a service for teams without in-house specialists.
Download
A master key leaked in May and never revoked let attackers run LiteLLM's own release pipeline in October.
The October wave was the largest yet, and it worked again mostly because the last ones were never fully cleaned up.
AI made vulnerability reports cheap to produce, and the cost of proving most of them false now falls on the teams receiving them.