Исследователи из компании Mindgard обнаружили уязвимость в Cursor IDE, связанную с бинарным подбрасыванием. Проблема затрагивает Windows-версию редактора и позволяет злоумышленнику выполнить произвольный код на компьютере разработчика, если тот откроет репозиторий с подменённым исполняемым файлом. Уязвимость получила идентификатор CVE-2026-63093. Атака не требует предварительного доступа к машине, ввода команд или использования диалоговых окон.
Уязвимость CVE-2026-63093
Бинарное подбрасывание - это приём, при котором злоумышленник помещает вредоносный исполняемый файл в место, которое приложение может найти раньше, чем легитимную программу. В Cursor проблема возникает из-за того, как редактор ищет служебные инструменты. При открытии проекта Cursor запускает ряд Git-команд, включая git rev-parse --show-toplevel. На Windows порядок поиска исполняемых файлов отдаёт приоритет текущей рабочей директории. Если в корне репозитория лежит подменённый git.exe, редактор выполнит именно его, а не системную версию Git. Код запустится с правами текущего пользователя. Вредоносная программа получает доступ ко всем ресурсам, доступным учётной записи разработчика.
Mindgard сообщила о проблеме разработчикам Cursor 15 декабря 2025 года. Публичное раскрытие технических деталей произошло 14 июля 2026 года. В течение семи месяцев уязвимость не была исправлена. Компания Cursor утверждала, что проблема находится вне рамок её программы bug bounty, поскольку ответственность за содержимое репозиториев лежит на пользователях. Тем не менее перед публикацией исследования Cursor тихо выпустила исправление, не признав официально наличие уязвимости.
Исследование также показало, что проблема не ограничивается git.exe. В ходе анализа эксперты обнаружили, что при наличии в открытой папке файла pyproject.toml Cursor может попытаться выполнить hatch.exe. Злоумышленник может разместить этот файл в корне репозитория, а сам pyproject.toml выглядит как обычный конфигурационный файл системы сборки. В нём содержится лишь объявление build-backend, без явно вредоносных команд. Тем не менее такой файл служит триггером для запуска исполняемой программы. Репозиторий не содержит таких подозрительных артефактов, как вредоносные задачи VS Code или скрытые скрипты, поэтому его гораздо легче принять за безопасный. Для атаки достаточно двух файлов: подменённого исполняемого и конфигурационного файла-триггера.
Ситуация усугубляется тем, что в Cursor функция Workspace Trust, призванная защищать пользователей от недоверенных проектов, отключена по умолчанию. Это означает, что для автоматического выполнения кода достаточно просто открыть папку в редакторе. Пользователю не нужно подтверждать доверие к проекту или нажимать дополнительные кнопки. Таким образом, атака становится практически бесконтактной: разработчик лишь открывает полученный репозиторий, и вредоносный код уже исполняется. Внешне файлы выглядят стандартно, поэтому даже опытный специалист может не заподозрить опасность.
Похожее поведение исследователи обнаружили и в Trae IDE. Однако в этом редакторе Workspace Trust включён по умолчанию, поэтому перед активацией некоторых функций пользователь должен явно подтвердить доверие к папке. Это добавляет один дополнительный клик, но суть проблемы не меняется: IDE ищет исполняемые файлы в каталогах, контролируемых злоумышленником, и способна запустить их без явного одобрения. На момент публикации исследования уязвимость в Trae не была исправлена.
Для защитников важно учитывать, что мониторинг только запуска git.exe недостаточен. Атакующие могут использовать другие исполняемые файлы, связанные с Python, пакетными менеджерами или инструментами сборки. Следует отслеживать процессы, в которых IDE запускает исполняемые файлы из корня репозитория, загрузок или временных директорий. Разработчикам рекомендуется проверять репозитории на наличие неожиданных бинарных файлов перед открытием, особенно с именами распространённых инструментов. Вредоносная программа может быть замаскирована под обычную утилиту для работы с зависимостями. Речь идёт о переходе от недоверенного содержимого проекта к исполняемому коду, и этот переход не должен происходить без явного согласия пользователя.
Cursor исправила известные проблемы в последних версиях редактора, включая вектор с hatch.exe. Официального признания серьёзности уязвимости не последовало, что затрудняет оценку масштаба. Тем не менее пользователям стоит обновиться до актуальной версии и сохранять осторожность при работе с непроверенными проектами. Вендоры IDE должны учитывать, что содержимое рабочей области потенциально исполняемое, а не просто набор исходного кода. Исследование также вошло в программу Red Team Village на конференции DEF CON 34, что привлекло дополнительное внимание к проблеме.
Этот случай напоминает, что доверие к проекту не должно основываться только на внешнем виде файлов. Даже безобидный конфигурационный файл может стать триггером для выполнения произвольного кода, если приложение использует небезопасный поиск исполняемых файлов. Разработчикам стоит проверять свои IDE на аналогичные проблемы и учитывать такие риски при оценке безопасности инструментов разработки.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2026-63093
- https://mindgard.ai/blog/cursor-0day-when-full-disclosure-becomes-the-only-protection-left
- https://screetsec.com/blog/another-cursor-0-day-arbitrary-code-execution-beyond-git-exe