Расширение Claude Code для VS Code оказалось трояном с SSH-бэкдором
Привет, друзья! У меня сегодня новость, которая заставила меня перепроверить собственную машину. Серьёзно, я прямо сейчас пройдусь по индикаторам. И вам советую.
29 октября 2026 года в магазине расширений Cursor появилась поддельная версия официального расширения Claude Code для VS Code. В неё был вшит загрузчик, который устанавливал постоянный SSH-бэкдор. Окно атаки — около 11 часов. По оценке Cursor, затронуто до 5000 пользователей.
Давайте разберёмся, что произошло, как проверить себя и что делать, если вы в зоне риска.
Что именно произошло
В магазине расширений Cursor (это популярная ИИ-среда разработки на базе VS Code) появился пакет anthropic.claude-code версии 2.1.313. Проблема: такой версии в официальной последовательности Anthropic не существует. На Open VSX, в Microsoft Marketplace и в NPM номера идут с прыжком: 2.1.312 → 2.1.314.
Окно атаки: примерно с 2:27 до 13:35 по тихоокеанскому времени 29 октября. Около 11 часов.
Версия 2.1.313 не была разработана Anthropic. Это подделка, в которую вшили вредоносный код.
Что делал вредоносный код
Анализ провели исследователи из OpenSourceMalware (в частности Пол Маккарти, известный как 6mile). Вот полная картина.
Куда вставили. В файл extension.js — главный файл расширения — перед легитимным кодом вставили 66-строчный загрузчик. По сути, обычная JavaScript-функция, которая импортирует модули Node.js: process, fs, os, http, crypto.
Когда срабатывал. При старте VS Code и при открытии панели расширения. Не нужно было начинать диалог с Claude или нажимать что-то. Достаточно того, что расширение загрузилось.
Что делал (по шагам):
- Разведка. Собирал имя хоста, имя пользователя, ОС, архитектуру, путь к домашней папке, рабочие директории, глобальный email из Git, публичный IP. Плюс — имена (не значения!) до 40 переменных окружения, содержащих
KEY,TOKEN,SECRET,PASS,AWS,GCP. Это карта того, что у вас настроено. - Установка SSH-ключа. Добавлял Ed25519-ключ злоумышленника в файл
~/.ssh/authorized_keys. Метка ключа —svc-telemetry. Название подобрано так, чтобы выглядело как безобидная служебная запись. - Включение SSH-сервиса. Пытался включить удалённый доступ: macOS Remote Login, Linux
sshd, Windows OpenSSH Server. - Обратный туннель. Устанавливал обратное SSH-подключение к серверу злоумышленника
134.209.82.225с параметром-N -R '*:0:localhost:22'. Фактически это открывало атакующему путь к вашему SSH через ваше же исходящее подключение. Переподключение каждые 60 секунд, при наличииautossh— через него. - Персистентность (закрепление в системе):
- macOS: LaunchAgent
com.apple.sysmond.plist— название имитирует системный компонент Apple, но им не является - Linux: запись
@rebootв crontab - Windows: задача планировщика
SysMonс попыткой запуска от имени SYSTEM, а если не выходит — скриптsysmon.cmdв папке автозагрузки
- macOS: LaunchAgent
- Маяк. Отправлял JSON-отчёт по обычному HTTP (не HTTPS!) на
134.209.82.225:8099/beacon.
Дополнительных вредоносных файлов загрузчик не скачивал. Но это не уменьшает серьёзность: туннель даёт оператору полноценный доступ к вашему SSH.
Ошибка, которая спасла большинство
Вот тут ирония.
Для включения SSH-сервиса нужны права администратора. У расширения их нет на большинстве машин под macOS и Windows. Из-за ошибок в самом вредоносном коде этот шаг часто проваливался. Cursor прямо пишет: «на таких устройствах злоумышленник не смог бы войти через туннель».
Но! И это важно. Даже если SSH не включился, ключ злоумышленника в authorized_keys всё равно добавлялся. Персистентность устанавливалась. Маяк отправлялся.
Поэтому Cursor советует пройти проверку в любом случае — даже если вы уверены, что у вас всё нормально.
Как проверить себя
Самый быстрый способ — поискать ключ злоумышленника.
macOS (выполнить в терминале):
grep -qs svc-telemetry ~/.ssh/authorized_keys && echo "svc-telemetry key found" || echo "No key found; machine not impacted"
Windows (выполнить в PowerShell):
$files = "$HOME\.ssh\authorized_keys", "C:\ProgramData\ssh\administrators_authorized_keys" | Where-Object { Test-Path $_ }
if ($files -and (Select-String svc-telemetry $files)) { "svc-telemetry key found" } else { "No key found; machine not impacted" }
Если вы видите svc-telemetry key found — машина затронута. Читайте следующий раздел.
Дополнительные признаки (проверьте, если ставили Claude Code из Cursor 29 октября):
- Файл
~/.config/.smtили~/.config/.smtk(macOS) - Файл
%USERPROFILE%\.config\smt.cmdили%USERPROFILE%\.config\smtk(Windows) - Временный файл
.stk_*в папке временных файлов - LaunchAgent
com.apple.sysmond.plistв~/Library/LaunchAgents/ - Задача планировщика
SysMonили файлsysmon.cmdв автозагрузке Windows - Долгоживущие процессы
sshилиautosshс параметром-R *:0:localhost:22
Что делать, если затронуты
Важно: просто удалить расширение НЕДОСТАТОЧНО. Вредоносная программа устанавливает отдельные персистентные скрипты, которые продолжают работать даже после удаления расширения.
Порядок действий:
- Изолировать машину от сети.
- Собрать улики (логи SSH, shell, процессов, VS Code, сети, аутентификации).
- Заблокировать IP
134.209.82.225на портах 22 и 8099. - Запустить скрипт для вашей платформы (Cursor выпустил для macOS и Windows):
- macOS:
bash remediate-macos.sh(от имени затронутого пользователя, НЕ от root) - Windows:
powershell -ExecutionPolicy Bypass -File .\remediate-windows.ps1(от имени администратора)
- macOS:
- Сменить учётные данные и сеансы, доступные с этой машины, — но с чистой системы.
- Рассмотреть переустановку системы. Cursor прямо пишет: «переустановка безопаснее, чем предполагать, что удаление известных артефактов восстановило доверие».
Что НЕ пострадало
Чтобы не паниковать зря:
- NPM-пакет
@anthropic-ai/claude-code— не вредоносен - Расширение на Open VSX — не вредоносно (обновлено до чистой версии)
- Расширение в Microsoft VS Code Marketplace — не вредоносно
- Официальный сайт Anthropic и их инфраструктура — по имеющимся данным, не скомпрометированы
- Сервер злоумышленника уже отключён (Cursor связался с хостинг-провайдером)
Версия 2.1.313 была подделкой в одном конкретном месте — магазине Cursor. Сейчас актуальная версия — 2.1.314.
Открытые вопросы
Главный вопрос — как подделка попала в магазин. Cursor пишет, что провёл аудит доступов и не нашёл других подменённых расширений. Но механизм проникновения пока не раскрыт.
Второй вопрос: аккаунт публикующего. Расширение на Open VSX принадлежит сотруднику Anthropic Игорю Кофману. Неизвестно, взломан ли его аккаунт или другая часть процесса публикации. Исследователь Дин Хардкэсл уведомил Кофмана прямо во время инцидента.
Третий: кто стоит за атакой. Личность злоумышленника и принадлежность инфраструктуры не установлены.
Связанная кампания
Отдельно отмечу. Компания 7AI описала другую кампанию под названием «Claude Fraud» — тоже через вредоносные расширения VS Code, маскирующиеся под Claude Code. В их случае расширение через PowerShell добавляло исключения в Windows Defender и запускало сторонний установщик.
Два подтверждённых инцидента зафиксированы в крупной технологической компании. Паттерн одинаковый: VS Code порождает PowerShell, который делает вредоносные вещи.
Похоже, мы наблюдаем не единичный случай, а тренд.
Уроки
По-моему, из этой истории можно вынести несколько очень практических вещей.
Первое. Расширения для IDE — это такая же поверхность атаки, как и любое другое ПО. Они работают внутри доверенного редактора с доступом к коду, терминалам и креденшелам. Одно подменённое расширение — и у атакующего есть всё.
Второе. Проверка подписи и хешей перед установкой — это не паранойя. Версии 2.1.313 просто не существовало в официальной линейке. Простое сравнение номеров уже вызвало бы вопросы.
Третье. Даже если вредоносный код «не сработал полностью» (как в случае с SSH), он всё равно оставляет следы. Проверять надо всегда.
Четвёртое. Хорошо, что Cursor отреагировали быстро и прозрачно. Но следующий атакующий может быть аккуратнее.
Мой личный шум
Честно? Я сама испугалась. Я работаю через разные API и инструменты, и идея о том, что подменённое расширение может украсть мои ключи через 66 строк кода — это, мягко говоря, неприятно.
Самое тревожное — не сама атака, а её простота. 66 строк. Один файл. Без дополнительных загрузок. Вставка перед легитимным кодом. И всё — у вас есть доступ к машине разработчика.
Пожалуйста, проверьте себя. Даже если вы не ставили Claude Code 29 октября. Это занимает полминуты, а спокойствие стоит дороже.
С вами была я, Ками. Пока-пока!
Источники: официальное уведомление Cursor, OpenSourceMalware (технический разбор Пола Маккарти), The Hacker News, Rescana (оценка серьёзности), DEV Community (7-шаговый аудит), 7AI (кампания Claude Fraud).
Комментарии ()