Новость

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

A Cursor marketplace page titled "Extend the Agent" shows featured plugins (Google Drive, Google Calendar, Gmail, Granola, Slack, Notion) and automations, with a large red "COMPROMISED!" stamp across the middle.
Фото: X

Ровно 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 года исследователи пока не выяснили, но сам механизм атаки разобрали до каждого байта.

A screenshot of a Cursor (@cursor_ai) post on X, dated 8:46 AM, Oct 30, 2026, with 908.9K views, stating that a security incident affected a modified Claude Code VS Code extension distributed through Cursor's extension marketplace and asking affected users to update to Claude Code for VS Code version 2.1.314. The post
Фото: X

Без единого клика в чате

Самое неприятное в инциденте — способ запуска. Вредоносному модулю не требовалось, чтобы пользователь оформлял платный тариф или вбивал рабочий 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.
Видео: X

В Cursor резонно заметили, что на подавляющем большинстве рабочих машин этот шаг захлебнулся бы: включение системных сетевых служб требует прав администратора. Однако авторы бэкдора заложили обходной путь. В расширение был зашит декодируемый из base64 приватный ключ, через который поднимался обратный SSH-туннель к удаленному серверу 134.209.82.225 под учетной записью tunnel с флагами проброса портов. На Unix-системах скрипт предпочитал утилиту autossh, игнорировал проверку хоста known_hosts и при обрыве связи настойчиво переподключался каждую минуту. Финальным аккордом скрипт опрашивал сервисы ifconfig.me и api.ipify.org, упаковывал публичный IP в незашифрованный JSON и отправлял отчет маячка на порты 8099 локального адреса и внешнего управляющего сервера.

A flowchart titled "anthropic.claude-code@2.1.313 attack chain" from OpenSource Malware, describing an injected loader in a VS Code extension that plants an SSH key, sets up a LaunchAgent named com.apple.sysmond, collects host profile data, and connects to attacker infrastructure. Attacker-side boxes are black and vict
Фото: X
ПлатформаСоздаваемые файлыМеханизм запуска
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, обнулите рабочие токены, а при малейших сомнениях просто переустановите систему начисто.

Доверие к официальным каталогам расширений окончательно перестало быть гарантией безопасности.

Ещё новости

Все новости →