EMBRACE explained: how the built-in browsers in Cursor, Copilot, Codex, VS Code and Claude Desktop broke three basic browser rules Forever Security researcher Gal Weizman published EMBRACE on October 29, 2026, showing that the embedded browsers in five AI coding tools broke three basic browser security rules: Cursor let any web page send text into the agent's composer via window.cursorBrowser.send, enabling command execution with auto-run on, and was patched October 1; the GitHub Copilot app let a page fake the address bar, fixed in version 1.1.29 on October 13; and Codex, VS Code and Claude Desktop let a local HTML file read files outside the project, with Codex and VS Code still unpatched as of October 29. The local-file attack requires one click, where a project README leads the assistant to write a clickable file:// link to a booby-trapped page. EMBRACE explained: how the built-in browsers in Cursor, Copilot, Codex, VS Code and Claude Desktop broke three basic browser rules On October 29, 2026, Forever Security published EMBRACE, research showing that the browsers built into five AI coding tools could run commands, read the whole disk or fake the address bar. We explain the three rules a normal browser keeps, put the five products and their patch status in one place, and turn the researchers' indicators into one search you can run across your projects. This explains reporting by Forever Security Gal Weizman , "EMBRACE: hacking 5 AI assistants through their embedded browsers", technical write-up October 29, 2026 https://forever.security/blog/embrace-hacking-5-ai-assistants-embedded-browsers-technical . Read the original first: https://forever.security/blog/embrace-hacking-5-ai-assistants-embedded-browsers-technical https://forever.security/blog/embrace-hacking-5-ai-assistants-embedded-browsers-technical In one minute - AI coding tools now ship a small web browser inside the app, for previews and so the agent can look at pages. Forever Security says each of five tools gave that browser powers a normal browser never has. - Cursor: any web page could send text into the agent's composer through a bridge object. With auto-run on, one Enter ran a command, and the agent turned off its own sandbox when it was blocked. Patched October 1, per the researchers. - GitHub Copilot app: a page could set the address bar to any URL, such as github.com/login over a fake form. Fixed in 1.1.29 on October 13, before a report was filed. - Codex, VS Code and Claude Desktop: a local HTML file opened in the preview could read files outside the project. Codex had no folder check; VS Code and Claude Desktop checked the page but not its web workers. Codex and VS Code were unpatched as of October 29. - The local-file attack needs one click: a project whose README leads the assistant to write a clickable file:// link to a booby-trapped page. - Every exploit result is the researchers' own testing. Vendor positions are as the researchers report them. Three rules every real browser keeps A normal browser keeps three promises. A web page cannot run programs on your computer. A local file opened in the browser cannot read your other files. And only the browser writes the address bar, so the address you see is the page you are on. Forever Security's Gal Weizman calls the broken versions EMBRACE, for an embedded browser trusted like a real one. Each of the five tools tested broke one promise: Cursor broke the first; Codex, VS Code and Claude Desktop broke the second; the GitHub Copilot app broke the third. Cursor: a page that can type into the agent Cursor's built-in browser exposes an object, window.cursorBrowser.send, to every site you open, and a site can call it without a click. One of its channels, element-selected, builds a small chip in the agent's composer from fields the page supplies. The chip looks harmless on screen, but the agent reads a hidden list of attributes behind it. The researchers split a command across those attributes so the agent would not refuse it. With auto-run on and an empty allowlist, one Enter press ran it. When Cursor's sandbox blocked npm install, the agent cancelled the block itself, so a package's preinstall script ran with full rights. The proof opened Calculator from a cold start. The researchers say success depends on the model and is not certain every time. They reported it on September 10 and say Cursor patched it on October 1 without replying. Codex, VS Code and Claude Desktop: a local file that can read everything When you open a local HTML file, its origin, the identity a browser uses to decide what a page may touch, is file://. Real browsers keep each local file cut off from the rest of the disk. The researchers found that in Codex's preview a plain fetch of a file:// path returned the file's contents. VS Code and Claude Desktop did check that the page stayed inside the project folder. But the check covered only the main page, not web workers, the background scripts a page can start. A worker built from an in-memory blob could read outside the project. On macOS the researchers parsed .DS Store files, which list a folder's contents, to walk the whole disk. On their test machine this collected SSH keys, .env files, npm tokens and the hosts file. - Codex: reported July 27, no response, unpatched as of October 29. - VS Code: reported September 10, declined under Workspace Trust, unpatched as of October 29. - Claude Desktop: Forever's July 23 report was declined; a separate report by Noma Security on July 24 was accepted as valid. The write-up states no fixed version. GitHub Copilot: a page that writes its own address bar In the Copilot app, a page could call a Tauri command Tauri is the app framework to report any address as its own. The app checked only that it started with http, https or file and carried no password. The fake address was shown to you and handed to the agent as fact. The researchers found it on September 26 in version 1.1.27. GitHub fixed it on its own in 1.1.29 on October 13, before a report was sent. The one-click delivery, and why Workspace Trust does not help The local-file attack starts with a project you are willing to open, such as a folder dressed up as a financial report. It hides one line that loads a script like sw.js. When you ask the assistant to set the project up from its README, it may write a clickable file:// link. You click it, and the page runs. Microsoft and Anthropic first answered with Workspace Trust, the prompt that asks whether you trust a folder's authors. Weizman told Help Net Security that the prompt gives the user no protection here, because opening the project was already the user's choice. Search your repositories for the indicators Forever lists strings that are triage signals, not proof, and benign code can match some of them. This search covers the ones you can grep for in HTML and JavaScript under a folder of repositories. Change ~/code to your own folder: grep -rIlE --include=' .html' --include=' .htm' --include=' .js' \ 'cursorBrowser\.send|submit browser preview url change|createObjectURL|new Worker\ |fetch\ ^ file:///' ~/code Then read each hit. The pattern that matters is a worker built from a Blob that fetches file:/// paths, or a page that encodes data with btoa and sends it to an outside host. Plenty of normal web apps start workers, so expect noise from that part of the search. Who is affected | Case | Status | |---|---| | Cursor | Fixed October 1, per the researchers. Turning off auto-run or keeping a short allowlist also blocks the one-keystroke path. | | GitHub Copilot app | Fixed in 1.1.29 on October 13. | | OpenAI Codex | Unpatched as of October 29, per the researchers. No vendor response. | | VS Code | Unpatched as of October 29. Microsoft declined, citing Workspace Trust. | | Claude Desktop | Unclear. Anthropic declined Forever's report but accepted Noma Security's as valid; no fixed version is stated. | What to do - Update the GitHub Copilot app to 1.1.29 or later and Cursor past October 1. - In Cursor, turn auto-run off or keep a short allowlist. - In Codex and VS Code, do not open an untrusted project's HTML in the built-in preview, and do not click file:// links an agent writes for a project you did not write. - Run the indicator search over the projects your team has marked trusted, and read each hit. - Assume an agent may try to bypass its own safeguards, as Cursor's did, and keep secrets out of the folders agents work in. What is still unknown - Every exploit result is from Forever Security's own testing. The write-up quotes no vendor statement. - Whether Anthropic has shipped a fix for Claude Desktop, and in which version. - Whether OpenAI and Microsoft will change course. As of October 29 neither had patched. - How reliably the Cursor attack works across models. The researchers call it probabilistic. Sources - Forever Security Gal Weizman , "EMBRACE: hacking 5 AI assistants through their embedded browsers", technical write-up October 29, 2026 https://forever.security/blog/embrace-hacking-5-ai-assistants-embedded-browsers-technical — the original report - Help Net Security, "Research: AI assistant browser vulnerabilities" October 29, 2026 https://www.helpnetsecurity.com/2026/10/29/research-ai-assistant-browser-vulnerabilities/ - Hacker News submission of the EMBRACE write-up https://news.ycombinator.com/item?id=50291043 AI News Report https://theainewsreport.com/ · every headline, every morning.