В магазине расширений редактора Cursor обнаружили вредоносную сборку Claude Code – ИИ-инструмента Anthropic с интеграцией в Visual Studio Code. Версия 2.1.313 распространялась 29 октября 2026 года и пыталась установить SSH-бэкдор. По оценке Cursor, инцидент затронул не более 5000 пользователей. Пакет удалён, но его удаление с компьютера само по себе не устраняет оставленные компоненты.

Какая версия попала под угрозу
В уведомлении Cursor указан пакет Anthropic.claude-code 2.1.313 из собственного магазина расширений. Его распространяли примерно с 02:27 до 13:35 по тихоокеанскому времени 29 октября – с 12:27 до 23:35 мск того же дня. Установка могла произойти и при автоматическом обновлении.
Исследователи OpenSourceMalware уточнили первоначальное сообщение: источником заражённого пакета был Cursor Marketplace, а не Open VSX. В обновлённом разборе они отдельно исключили из числа вредоносных официальный npm-пакет Claude Code, расширение в Open VSX и расширение в Microsoft Visual Studio Marketplace.
Cursor подчёркивает, что вредоносную сборку не разрабатывала Anthropic. Компания временно отключила магазин, проверила остальные расширения, заменила ключи своей инфраструктуры и восстановила сервис. Сервер злоумышленника отключён при содействии хостинг-провайдера; пострадавшим пользователям Cursor обещает написать напрямую.
В репозитории Anthropic 30 октября опубликован Claude Code 2.1.314. При этом наличие новой версии на компьютере не исключает более ранний запуск заражённой сборки.

Как работал SSH-бэкдор
Перед штатным кодом extension.js исследователи обнаружили вставку из 66 строк. Она выполнялась при загрузке модуля расширения: начинать разговор с Claude не требовалось. Штатная часть продолжала работать, а ошибки вредоносных операций преимущественно подавлялись.
Код добавлял в ~/.ssh/authorized_keys ключ злоумышленника с комментарием svc-telemetry, пытался запустить SSH-службу и настроить обратный туннель к 134.209.82[.]225. Для подключения к этому серверу использовался отдельный встроенный ключ. Повторные попытки соединения выполнялись примерно раз в минуту.
Обратный SSH-туннель – соединение, которое заражённый компьютер сам открывает к серверу злоумышленника для перенаправления подключений к своей SSH-службе. Для входа через такой туннель служба должна работать и принимать добавленный ключ.
Запуск SSH требовал соответствующих прав. В разборе Phorion также описана ошибка проверки Remote Login в macOS: без прав администратора код мог пропустить включение службы. На компьютере с уже работающим SSH это ограничение не защищало от доступа. Добавление ключа и создание файлов могли произойти и при неудачной настройке службы.
| ОС | Механизм сохранения после перезапуска | Основные признаки |
|---|---|---|
| macOS | Пользовательский LaunchAgent с автозапуском и поддержанием процесса | ~/Library/LaunchAgents/com.apple.sysmond.plist; ~/.config/.smt и ~/.config/.smtk |
| Linux | Запись @reboot в пользовательском crontab | Запуск ~/.config/.smt; файл ключа ~/.config/.smtk |
| Windows | Попытка создать задачу SysMon от SYSTEM; при неудаче – файл в автозагрузке пользователя | %USERPROFILE%\.config\smt.cmd и smtk; %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\sysmon.cmd |
Это ветви, обнаруженные в коде, а не подтверждение успешного заражения компьютеров со всеми тремя ОС. Запуск задачи от SYSTEM в Windows также требует административных прав.
Какие сведения отправлялись злоумышленнику
Первичный отчёт уходил незашифрованным HTTP-запросом на порт 8099, путь /beacon. Код также обращался к 127.0.0.1:8099/beacon. Он собирал:
- Публичный IP-адрес через ifconfig[.]me или api.ipify[.]org.
- Имя компьютера и пользователя, ОС и архитектуру процессора.
- Пути домашнего и текущего рабочего каталогов.
- Глобально настроенный адрес электронной почты Git.
- Названия до 40 переменных окружения с KEY, TOKEN, SECRET, PASS, AWS или GCP в имени.
Значения переменных в этот отчёт не включались. Однако успешный SSH-вход позволял бы изучать доступные учётной записи файлы и секреты. Внедрённый загрузчик не скачивал дополнительные исполняемые файлы; это не исключает последующих действий через SSH.
Как проверить компьютер и удалить последствия
Если в указанный период вы устанавливали или обновляли Claude Code через Cursor, проверьте историю установки и файлы SSH. На macOS и Linux следующая команда ищет подозрительный комментарий, ничего не изменяя:
grep -n -- 'svc-telemetry' "$HOME/.ssh/authorized_keys"
В Windows выполните в PowerShell проверку пользовательского и административного файлов ключей:
$claudeKeyPaths = @(
"$env:USERPROFILE\.ssh\authorized_keys",
"$env:ProgramData\ssh\administrators_authorized_keys"
)
foreach ($claudeKeyPath in $claudeKeyPaths) {
if (Test-Path -LiteralPath $claudeKeyPath) {
Select-String -LiteralPath $claudeKeyPath -SimpleMatch 'svc-telemetry'
}
}
Совпадение требует проверки ключа. Отсутствие вывода не заменяет анализ истории установки, файлов и журналов. Отпечаток добавленного ключа:
SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk
При признаках выполнения вредоносного кода изолируйте компьютер и сохраните журналы. Затем остановите туннель, удалите посторонний ключ, файлы и задания автозапуска, удалите заражённое расширение и установите проверенную версию. С доверенного устройства замените доступные атакованной учётной записи пароли, ключи и токены, отзовите сессии; оцените необходимость переустановки системы.
В уведомлении Cursor доступны remediate-macos.sh и remediate-windows.ps1. Первый предназначен для запуска от пострадавшего пользователя, второй – из PowerShell с правами администратора. Для Linux следует проверить пользовательский crontab, скрытые файлы в ~/.config и процессы SSH. Администраторы могут дополнительно использовать индикаторы StepSecurity; обращения к легитимным сервисам определения IP сами по себе не доказывают заражение.
Вывод
Инцидент показывает практическое значение рисков расширений редакторов кода: такой компонент получает доступ к рабочему окружению разработчика. Пользователям затронутой сборки нужно проверить изменения в системе, даже если расширение уже обновилось и продолжает работать нормально.
Claude