Вредоносное расширение Cursor, маскировавшееся под Anthropic Claude Code, находилось в маркетплейсе редактора около 11 часов 29 октября. Оно могло попасть на компьютеры до 5 тыс. разработчиков и пыталось установить постоянный SSH-бэкдор — для команд, работающих с репозиториями, облачными ключами и доступами к продакшену, это повод не ограничиваться удалением подозрительного плагина.
Скомпрометированный пакет распространялся под версией 2.1.313 с 02:27 до 13:35 по тихоокеанскому времени. По данным BleepingComputer, речь шла только о маркетплейсе Cursor: npm, Open VSX и официальный Visual Studio Code Marketplace не затронуты. Cursor построен на базе открытого кода VS Code и поддерживает его расширения, а Claude Code добавляет в совместимые редакторы помощника Anthropic для работы с кодом через текстовые команды.
Исследователи Phorion и OpenSourceMalware обнаружили, что атакующие добавили JavaScript-загрузчик в начало файла extension.js. Оригинальная логика расширения при этом почти не менялась — удобный способ не вызвать подозрений при поверхностной проверке. Код запускался при загрузке расширения, без отдельного действия пользователя внутри Claude Code. После установки он собирал сведения о системе и пользователе, включая Git email и публичный IP-адрес.
Дальше скрипт добавлял SSH-ключ, контролируемый атакующими, пытался включить SSH-доступ и поднять обратный туннель. Для закрепления на macOS он использовал LaunchAgent, а на Windows — задачу планировщика или сценарий автозапуска. Попытки восстановить туннель повторялись примерно раз в минуту. Данные о хосте и состоянии бэкдора отправлялись на сервер атакующих с IP-адресом 134.209.82[.]225.
У атаки, похоже, были и технические огрехи, которые снизили её эффективность, но не отменили риск. На macOS вредоносный код проверял статус Remote Login командой systemsetup -getremotelogin без повышенных прав. Вместо статуса SSH система возвращала ошибку о необходимости прав администратора, а скрипт включал сервис только при ответе «Off». В результате он пропускал активацию SSH. На Windows авторы попытались установить OpenSSH Server через PowerShell, но запускали команду через /bin/sh — оболочку, которой в стандартной Windows обычно нет.
Если SSH-сервер на машине уже работал, эти ошибки не обязательно спасали. Даже когда удалённый доступ не поднимался, вредоносное расширение Cursor успевало установить ключи, закрепиться в системе и передать разведданные: имя пользователя, имя хоста, публичный IP, Git email и названия переменных окружения, которые могут быть связаны с секретами. Скрипт не выгружал сами пароли или токены напрямую. Вероятная цель — получить интерактивный доступ через туннель, а уже затем вручную искать ключи, конфигурации CI/CD и облачные учётные данные.
Cursor удалил пакет, временно отключил весь маркетплейс для аудита расширений и ротации ключей доступа, а также добился отключения сервера атакующих у хостинг-провайдера. Компания утверждает, что не нашла признаков компрометации других версий расширения или официального канала распространения. Тем, кто скачал версию в окно атаки, Cursor рекомендует проверить систему на SSH-ключ с именем svc-telemetry. При подтверждённом заражении разумный минимум — изолировать устройство, отозвать сессии, заменить доступные ему секреты и восстановить окружение из доверенной резервной копии.
Инцидент снова показывает неприятную особенность рынка AI-инструментов для разработки: расширение получает доступ не просто к редактору, а часто к исходникам, терминалу, Git-конфигурации и переменным окружения. Главный открытый вопрос — каким образом злоумышленники смогли опубликовать изменённый пакет от имени Anthropic в Cursor Marketplace. Пока на него нет ответа, разработчикам стоит считать маркетплейсы частью цепочки поставки: фиксировать разрешённые версии расширений, проверять издателя и отдельно контролировать, какие плагины получают доступ к рабочим машинам.

