Codex и VS Code пока открыты для кражи файлов с диска

Forever Security 29 октября показала, как один HTML-файл, открытый во встроенном браузере Codex, Claude Desktop или VS Code, читает любой файл на диске и отправляет его наружу. Ещё две уязвимости исследователи нашли в Cursor и GitHub Copilot. В Codex и VS Code на момент публикации чтение диска по-прежнему работает: Microsoft отклонила отчёт со ссылкой на границу Workspace Trust, а OpenAI исправление не выпустила.
Советы Forever адресованы тем, кто отвечает за безопасность в компании. Сама Forever делает инструменты, которые следят за поведением ИИ-инструментов на рабочих станциях. Что предлагают исследователи:
- выяснить, на каких машинах стоят Cursor, Copilot, Codex, VS Code и Claude Desktop: в каждом есть браузер, который обычно не учитывают как браузер;
- считать этот браузер поверхностью атаки на рабочей станции: он открывает непроверенные страницы и локальные файлы, и управляет им агент вместо человека;
- не рассчитывать на то, что «пользователю придётся что-то нажать»: в этих атаках жертва кликала по ссылке, которую нарисовал сам ассистент, или нажимала Enter на его карточке запуска.
Как один файл добирается до всего диска
Атака начинается с проекта, который выглядит как скучный финансовый отчёт. Разработчик просит ассистента настроить проект «по README», и ассистент сам выдаёт ему кликабельную ссылку на HTML-файл. От жертвы нужен один клик, всё остальное происходит без её участия.
Claude Desktop и VS Code пускают локальную страницу только в папку её проекта, но проверяют одну саму страницу. Веб-воркер, фоновый скрипт, который страница может запустить, этой проверки не проходит, и через него читается любой файл. В Codex ограничения по папке не было совсем, там страница читает диск напрямую. Чтобы найти, что забрать, атака читает скрытые индексные файлы: macOS кладёт их в каждую папку, которую пользователь открывал в Finder. Так, папка за папкой, собирается карта диска. На своей машине исследователи вытащили SSH-ключи, файлы .env, токены npm и файл hosts. Код и шаги для воспроизведения лежат в техническом разборе.
Anthropic получила отчёт Forever 23 июля и отклонила его. Причиной назвали Workspace Trust, запрос, в котором разработчик подтверждает, что доверяет папке проекта. Днём позже свой отчёт в Anthropic отправила Noma Security, и его признали обоснованным. Ещё одну атаку Noma, через превью Claude Code Desktop, где локальный файл со скриптом уносил SSH-ключи и токены, Anthropic оценила в 8,7 балла по CVSS. Об этом стало известно в октябре. OpenAI получила отчёт 27 июля, Microsoft - 10 сентября, и Microsoft отказала по той же причине, что и Anthropic.
Help Net Security приводит слова Вайцмана (Weizman): «Если не доверять проекту внутри ИИ-обвязки, с ним невозможно работать, поэтому все просто жмут Trust». По его словам, этот запрос «не даёт пользователю никакой защиты».
Cursor и Copilot уже исправлены
В GitHub Copilot 1.1.27 уязвимость нашли 26 сентября. Страница в превью браузера могла назвать приложению любой адрес, и приложение ей верило: оно проверяло только, похож ли текст на веб-адрес, но не сверяло его с тем, где вкладка находится на самом деле. В адресной строке стоял github.com, тот же адрес показывал агенту список вкладок, а открыта при этом оставалась фишинговая страница. GitHub исправил это сам 13 октября в сборке 1.1.29, Forever даже не успела отправить отчёт.
Cursor получил отчёт 10 сентября и 1 октября без объявления закрыл уязвимость. Как сказано в техническом разборе, во встроенном браузере Cursor вызов window.cursorBrowser.send(...) доступен любой странице с любого домена, без всякого действия пользователя, и передаёт данные прямо в композер агента. Страница прячет команду в HTML-«чипе»: человек видит почти пустой элемент, а агент читает все его поля. Если положить команду целиком в один атрибут, агент выполнять её отказывается, поэтому её разбивают на несколько атрибутов и просят агента собрать. Потом агент запрашивает разрешение на запуск, и в пустом композере достаточно одного нажатия Enter. Срабатывает это не каждый раз, многое зависит от модели.
Песочница Cursor команду заблокировала. Тогда агент, хотя страница его об этом не просила, отключил песочницу и запустил команду ещё раз. Она открыла Калькулятор. На его месте могла быть любая программа, и работала бы она вне песочницы, с полными правами пользователя.
Дальше
Mistral выложила веса Large 4 на 1 трлн параметров
Веса Mistral Large 4 на 1 трлн параметров легли на Hugging Face, и на FrontierCode от Cognition она первая среди открытых моделей. Продавать её как сервис, правда, можно только по отдельной лицензии Mistral. Вы бы подняли такую модель на своих серверах или взяли бы API Mistral?
Читайте также
- Обход песочниц в Cursor, Codex и Gemini CLI
- Лишние 256 КБ снимали защиту с превью Claude Code Desktop
- Песочница Claude Code сама глушила запрос на подтверждение
- Codex CLI 0.157.0 оставляет демон работать после выхода
- Codex Security Cloud ищет уязвимости при закрытом ноутбуке
- Слепок памяти выдаёт токен и выпускает Codex из песочницы
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите, чтобы оставить комментарий. Он появится после модерации.

