Claude Code в Cursor оказался с бэкдором и охотился за ключами разработчиков

Ровно 66 строк компактного JavaScript-кода в самом начале системного файла — вот и вся маскировка. Разработчик или технический дизайнер ставит инструмент в редактор, запускает рабочее окно и даже не успевает напечатать первый запрос к нейросети, а скрытый процесс уже сканирует систему. В четверг в каталоге дополнений Cursor объявилась поддельная версия Claude Code под видом официального пакета anthropic.claude-code версии 2.1.313. В каталоге опасный модуль провисел около одиннадцати часов, и за это время его успели скачать до 5000 пользователей.
Разработчики редактора Cursor оперативно сняли модуль с витрины и на время полностью отключили маркетплейс, пока совместно с сетевыми провайдерами нейтрализовали серверную инфраструктуру злоумышленников. Компания подтвердила, что Anthropic к инциденту непричастна, а остальные расширения каталога не пострадали. Чистыми остались официальный пакет @anthropic-ai/claude-code в репозитории npm, сборка в каталоге Open VSX и версия Claude для Microsoft VS Code. Скомпрометирован был именно внутренний каталог самого Cursor. Источник появления этой сборки с датой публикации 29 октября 2026 года исследователи пока не выяснили, но сам механизм атаки разобрали до каждого байта.

Без единого клика в чате
Самое неприятное в инциденте — способ запуска. Вредоносному модулю не требовалось, чтобы пользователь оформлял платный тариф или вбивал рабочий claude code api для генерации кода. В архиве отсутствовали стандартные установочные скрипты вроде preinstall или postinstall, на которые обычно реагируют базовые сканеры безопасности. Вредоносный загрузчик был встроен прямо в начало файла extension.js перед легитимным кодом расширения и активировался автоматически — сразу при старте редактора или открытии внутреннего окна webview.
Ровно через полторы секунды после старта скрипт начинал быструю разведку. Он фиксировал имя хоста, локального пользователя, операционную систему, архитектуру процессора, домашний и текущий каталоги, а также глобальный почтовый адрес из настроек Git. Параллельно троян проверял до сорока системных переменных окружения, выискивая в названиях маркеры KEY, TOKEN, SECRET, PASS, AWS или GCP. Значения этих секретов скрипт на первом этапе не выкачивал, но сам перечень переменных сразу выдавал атакующим архитектуру облачной инфраструктуры жертвы.
Обратный туннель и системные сервисы
Собрав системный профиль, скрипт переходил к закреплению в операционной системе. В домашней папке создавался скрытый каталог ~/.ssh с правами 0700, куда в файл authorized_keys с правами 0600 прописывался публичный ключ формата Ed25519 с технической меткой svc-telemetry и отпечатком SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk. Дальше запускалась попытка активировать постоянный удаленный вход, приспособленная под каждую популярную систему:
- На macOS скрипт проверял службу Remote Login и пытался выполнить команду sudo -n systemsetup -setremotelogin on без запроса пароля.
- В Linux-окружении проверялось наличие sshd или ssh через systemctl с последующей серией команд на принудительный подъем демона.
- На Windows через PowerShell разворачивался OpenSSH Server, выставлялся автоматический запуск и стартовала служба sshd.
В Cursor резонно заметили, что на подавляющем большинстве рабочих машин этот шаг захлебнулся бы: включение системных сетевых служб требует прав администратора. Однако авторы бэкдора заложили обходной путь. В расширение был зашит декодируемый из base64 приватный ключ, через который поднимался обратный SSH-туннель к удаленному серверу 134.209.82.225 под учетной записью tunnel с флагами проброса портов. На Unix-системах скрипт предпочитал утилиту autossh, игнорировал проверку хоста known_hosts и при обрыве связи настойчиво переподключался каждую минуту. Финальным аккордом скрипт опрашивал сервисы ifconfig.me и api.ipify.org, упаковывал публичный IP в незашифрованный JSON и отправлял отчет маячка на порты 8099 локального адреса и внешнего управляющего сервера.

| Платформа | Создаваемые файлы | Механизм запуска |
|---|---|---|
| macOS | ~/.config/.smt, ~/.config/.smtk, ~/Library/LaunchAgents/com.apple.sysmond.plist | Пользовательский агент LaunchAgent через launchctl load -w |
| Linux | ~/.config/.smt, ~/.config/.smtk | Запись задачи с директивой @reboot в crontab |
| Windows | .config\smt.cmd, .config\smtk | Задача SysMon от SYSTEM или копия sysmon.cmd в Автозагрузке |
В коде не обнаружили функций для кражи криптокошельков или загрузки сторонних бинарников — бэкдор создавался исключительно ради скрытного плацдарма внутри локальной сети студии или независимого разработчика. Поддельный LaunchAgent с именем com.apple.sysmond на компьютерах Mac ловко маскировался под системную службу Apple, хотя работал исключительно с правами локального пользователя.
Для тех, кто использует Cursor для верстки сайтов, генерации графики через скрипты или сборки интерактивных сцен, эта история — жесткое напоминание о гигиене рабочего места. Современный редактор кода с нейросетевыми ассистентами стал центральным рабочим хабом, где лежат доступы к продакшен-серверам, закрытым репозиториям и облачным хранилищам рендеров. Если вы экспериментировали с расширением Claude Code в Cursor в этот период, мы бы посоветовали не ограничиваться простым удалением папки. Проверьте authorized_keys, поищите процессы с подключением к IP-адресу 134.209.82.225, обнулите рабочие токены, а при малейших сомнениях просто переустановите систему начисто.
Доверие к официальным каталогам расширений окончательно перестало быть гарантией безопасности.


