|

Расширение Claude Code скомпрометировано: бэкдор в версии 2.1.313, 5 шагов для проверки и удаления

Расширение Claude Code скомпрометировано: бэкдор в версии 2.1.313, 5 шагов для проверки и удаления

29 октября 2026 года с 17:27 до 04:35 следующего дня по пекинскому времени, примерно на 11 часов, официальное расширение Claude Code в магазине Cursor было заменено вредоносной сборкой с SSH-бэкдором. Затронуты версии 2.1.312 и 2.1.313 для macOS arm64 и Windows x64. По данным Cursor, до 5 000 пользователей скачали расширение или получили его через автообновление.

Это не поддельный плагин, который пробрался в магазин. Пользователи получили пакет с официальным именем Anthropic.claude-code. Интерфейс и функции тоже выглядели как обычно, поэтому многие даже не знали, что установили вредоносную версию. По той же причине удалить расширение или обновить его недостаточно. Вредоносный код уже добавил публичный SSH-ключ, настроил автозапуск скрипта для закрепления в системе и отправил информацию о компьютере атакующему. Чтобы устранить последствия, нужно сделать три вещи: удалить ключ, убрать механизм закрепления и сменить учётные данные.

Что вы получите: в статье всё разобрано в 5 шагов по схеме «что вы увидите → что сделать → как проверить результат». Даже разработчик без опыта в информационной безопасности сможет примерно за полчаса проверить и очистить систему, а также сменить ключ APIYI.

claude-code-extension-poisoned-2-1-313-backdoor-5-step-check-ru-image-0

Подпись: вредоносная сборка была доступна около 11 часов; 2.1.314 — первая чистая версия после инцидента.


Без паники: что случилось с расширением Claude Code

Для начала разберёмся с фактами. Вся информация в таблице взята из уведомления Cursor о безопасности и публичных ответов сотрудников Anthropic.

Пункт Факты
Инцидент Расширение Anthropic.claude-code в магазине Cursor было подменено: в него внедрили постоянный SSH-бэкдор
Затронутые версии 2.1.312 и 2.1.313 (Cursor добавила 2.1.312 в обновлённое уведомление 30 октября)
Платформы macOS (darwin-arm64), Windows (win32-x64); в коде также есть ветка для Linux
Период риска 29 октября, 02:27–13:35 по тихоокеанскому времени; 29 октября, 17:27 — 30 октября, 04:35 по пекинскому времени
Масштаб По оценке Cursor, до 5 000 пользователей. Это число потенциально затронутых, а не подтверждённых заражений
Текущий статус Вредоносные версии удалены; магазин закрыли, пересоздали, проверили и снова открыли. По словам Cursor, хостинг-провайдер отключил сервер атакующего
Безопасная версия 2.1.314 — первая безопасная версия; на 31 октября последняя версия — 2.1.316

Подпись: скриншот уведомления Cursor о безопасности (добавить на этапе редактирования).

Когда об инциденте только стало известно, появились неточные сообщения. Вот три важных уточнения:

  • Версия 2.1.312 тоже входит в список затронутых. Сначала Cursor сообщила только о 2.1.313, а затем добавила 2.1.312. Если вы установили 2.1.312 из магазина Cursor в период риска, тоже стоит проверить систему.
  • Подмена затронула только Cursor Marketplace. Ранее сообщалось, что пострадали также Open VSX, магазин Microsoft и npm, но эти сведения были исправлены. Socket проверила историю изменений реестра и не нашла записей о публикации или удалении версии 2.1.313.
  • Версия 2.1.313 никогда не публиковалась в официальных каналах Anthropic. Инженер по безопасности Anthropic Дэвид Дворкен сообщил, что эта версия не появлялась ни в Open VSX, ни в официальном магазине VS Code, ни на серверах Anthropic. Чтобы избежать путаницы с номерами версий, следующий официальный выпуск сразу получил номер 2.1.314.

Кто стоит за атакой и как злоумышленник получил право на публикацию, пока неизвестно. Феликс Ризеберг из Anthropic заявил, что системы компании и компьютеры её сотрудников не были взломаны: кто-то воспользовался доступом к магазину Cursor, чтобы опубликовать подменённую версию. В уведомлении Cursor не объясняется, как атакующий получил право на публикацию. Ранее, в октябре, Cursor открыла Marketplace для публичной отправки расширений, но официальных данных о связи этого решения с инцидентом нет, поэтому мы не будем строить догадки. Разработчикам сейчас полезнее не гадать о причине, а проверить свой компьютер.


Почему вредоносный код оказался даже в официальном расширении Claude Code

Первая реакция многих: как вредоносный код мог оказаться в пакете с официальным именем? Чтобы ответить на этот вопрос, нужно разобраться, как работают расширения IDE. Расширение запускается с правами IDE и может читать и изменять ваш код, переменные окружения и файлы в пользовательской директории. Причём его код выполняется сразу при загрузке — для этого не нужно открывать диалоговое окно или пользоваться расширением.

Анализ Phorion показал, что вредоносный код представлял собой самовызывающуюся функцию (IIFE) из 66 строк. Её вставили в самое начало файла extension.js, перед обычным кодом расширения. Функция запускалась, как только Node загружал модуль расширения, ещё до вызова обычного обработчика activate. Изменённый extension.js занимал 3 692 922 байта — примерно на 7 КБ больше предыдущей чистой версии. Код не использовал хук npm postinstall, поэтому речь идёт не о заражении npm-пакета: код изменили прямо в установочном пакете VSIX.

Представьте, что в аптеку не подбросили поддельное лекарство, а заменили содержимое упаковки известного бренда на вредоносное. Название, упаковка и штрихкод — настоящие, а вот содержимое уже не то. Поэтому в этом случае привычный совет «проверяйте, что издатель официальный» не помог бы.

claude-code-extension-poisoned-2-1-313-backdoor-5-step-check-ru-image-1

Подпись: цепочка работы бэкдора состоит из шести шагов; удаление расширения останавливает только первый.

С этим инцидентом связаны три распространённых заблуждения:

  1. «Официальное имя пакета означает, что и сборка официальная»: имя пакета и издатель действительно были официальными, но сборку сделала не Anthropic. В Open VSX тоже есть версия 2.1.312 — чистая сборка, выпущенная 27 октября. Номер версии одинаковый, но источник и безопасность различаются.
  2. «Проблема только в версии 2.1.313»: версия 2.1.312 в магазине Cursor тоже была вредоносной.
  3. «Достаточно удалить расширение или обновить его»: в объявлении Cursor прямо сказано, что одного удаления может быть недостаточно, поскольку вредоносная нагрузка оставляет скрипты закрепления, которые работают независимо от расширения.

Проверка и удаление бэкдора в расширении Claude Code за 5 шагов

Выполняйте эти пять шагов по порядку. Первые три — проверка, четвёртый — очистка, пятый — завершающие действия. Для каждого шага указано, что делать и как понять, что он выполнен.

claude-code-extension-poisoned-2-1-313-backdoor-5-step-check-ru-image-2

Подпись: процесс из пяти шагов. Пятый шаг — смену учётных данных — пропускать нельзя.

① Проверьте версию и источник расширения. Откройте панель расширений Cursor, найдите Claude Code и посмотрите его версию и издателя. Затем проверьте в терминале каталог ~/.cursor/extensions/ (в Windows — %USERPROFILE%\.cursor\extensions\): есть ли там папки с anthropic.claude-code-2.1.312 или 2.1.313 в названии. Даже если сейчас у вас установлена новая версия, оставшийся каталог старой версии говорит о том, что вы могли установить её в период атаки.

② Проверьте публичный ключ svc-telemetry. В macOS и Linux выполните grep -n svc-telemetry ~/.ssh/authorized_keys. В Windows нужно проверить оба файла: %USERPROFILE%\.ssh\authorized_keys и C:\ProgramData\ssh\administrators_authorized_keys. Вредоносный код проверяет наличие строки svc-telemetry в файле, поэтому проверять только комментарии недостаточно надёжно. Также рекомендуется выполнить ssh-keygen -lf ~/.ssh/authorized_keys, чтобы вывести отпечатки всех публичных ключей и сравнить каждый из них с отпечатком злоумышленника: SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk.

③ Проверьте механизмы закрепления и процессы туннеля. Что именно проверять, зависит от системы:

  • macOS: ~/Library/LaunchAgents/com.apple.sysmond.plist, ~/.config/.smt, ~/.config/.smtk, а также файлы .stk_* во временном каталоге. Имя этого LaunchAgent маскируется под системный компонент Apple, но на самом деле это элемент автозапуска на уровне пользователя.
  • Windows: выполните schtasks /query /tn SysMon, чтобы проверить запланированную задачу; проверьте файл sysmon.cmd в папке автозагрузки, а также %USERPROFILE%\.config\smt.cmd и %TEMP%\.stk_*.
  • Linux: выполните crontab -l и найдите записи с @reboot, которые указывают на ~/.config/.smt.
  • Все платформы: проверьте, есть ли процессы ssh или autossh с параметром -R '*:0:localhost:22'.
Шаг Что сделать Критерий проверки
① Источник расширения Проверить панель расширений и ~/.cursor/extensions/ Нет каталогов 2.1.312 / 2.1.313, текущая версия ≥ 2.1.314
② Публичный ключ Найти svc-telemetry и сравнить отпечатки В обоих типах файлов authorized_keys нет совпадений
③ Закрепление в системе Проверить plist / SysMon / cron / процессы туннелирования Файлов нет, процессов ssh с параметром -R тоже нет
④ Очистка Запустить официальный скрипт Cursor и обновить расширение Скрипт завершился с кодом 0, повторная проверка ①②③ ничего не обнаружила
⑤ Учётные данные Заменить ключи и токены Git, CI, облачных сервисов, SSH и API Старые учётные данные отключены, в логах вызовов нет подозрительной активности

④ При обнаружении признаков заражения запустите официальный скрипт очистки. Если при проверке ② или ③ обнаружен хотя бы один признак, действуйте по инструкции Cursor. Пользователям macOS нужно скачать cursor.com/static/security/claude-code-extension/remediate-macos.sh и запустить bash remediate-macos.sh от имени затронутого пользователя, не от root. Пользователям Windows нужно скачать remediate-windows.ps1, открыть PowerShell с правами администратора и выполнить powershell -ExecutionPolicy Bypass -File .\remediate-windows.ps1. Скачивайте скрипт только с официального сайта Cursor и не используйте сомнительные инструменты для «очистки в один клик». Скрипт удалит вредоносное расширение, механизмы закрепления, процессы туннелирования и публичный ключ атакующего. Если что-то останется, он завершится с ненулевым кодом. После очистки обновите расширение как минимум до версии 2.1.314. По состоянию на 31 октября можно сразу установить 2.1.316.

⑤ Замените учётные данные. В их числе — токены GitHub / GitLab и CI/CD, ключи доступа к облачным сервисам, приватные SSH-ключи, токены npm / PyPI, а также API-ключ APIYI apiyi.com, настроенный на этой машине. Заменяйте их на доверенном устройстве. Если логи SSH показывают, что туннель действительно использовался, Phorion рекомендует пересоздать хост: это безопаснее, чем удалять следы заражения по отдельности.


Почему на большинство машин не вошли, но бэкдор в Claude Code всё равно нужно проверить

Начнём с относительно хорошей новости. Согласно анализу Phorion, в самом вредоносном коде была ошибка, из-за которой на большинстве машин не удалось запустить службу SSH.

В macOS скрипт запускал systemsetup -getremotelogin с правами обычного пользователя и получал сообщение о том, что нужны права администратора. При этом код завершения оставался равным 0. Скрипт проверял только наличие Off в выводе. В сообщении этого слова не было, поэтому он ошибочно считал, что удалённый вход уже включён, и пропускал шаг запуска SSH. В Windows команда PowerShell для установки OpenSSH Server передавалась вспомогательной функции, в которой был жёстко задан /bin/sh. В стандартной установке Windows его нет, поэтому этот шаг, скорее всего, завершался ошибкой. Cursor также отмечает, что включение службы SSH и создание туннеля не сработали бы, если Cursor не был запущен с правами администратора, а это бывает редко.

Но это не значит, что всё в порядке. Публичный ключ, скрипт закрепления и разведывательный маяк уже попали на машину. Если провести аналогию: инструмент взломщика сломался, поэтому многие двери остались закрыты. Но ключ уже вставлен в замочную скважину, и каждые 60 секунд злоумышленник пытается открыть дверь снова.

Категория Индикатор (IOC, адреса приведены в безопасный вид) Описание
Сеть 134[.]209[.]82[.]225:22, имя пользователя tunnel Цель обратного SSH-туннеля
Сеть 134[.]209[.]82[.]225:8099/beacon HTTP-маяк без шифрования, передаёт сведения о машине
Публичный ключ Комментарий svc-telemetry Добавляется в authorized_keys
Отпечаток SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk Отпечаток публичного ключа злоумышленника
Приватный ключ туннеля SHA256:KOAU57+ZG6u3MG4WwzPzPX2O5YEe9qdOC1Bl+6MVyDQ Записывается в файл .stk_* во временном каталоге
Файл SHA-256 файла extension.js начинается с ecb58cb2 Основной файл вредоносного расширения, полное значение приведено в объявлении Cursor

Подпись: скриншот таблицы хешей вредоносных VSIX (добавить на этапе редактирования).

Особое внимание стоит обратить на следующие случаи:

  • Удалённый вход уже был включён. Если на вашем Mac включён удалённый вход в разделе «Системные настройки → Основные → Общий доступ» или команда Get-Service sshd в Windows показывает, что служба работает, бэкдор может быть использован.
  • Отключение сервера не означает, что машина чиста. Сервер злоумышленника сейчас недоступен, но скрипт закрепления продолжает попытки подключения. Пока его не удалить, машина остаётся в опасности.
  • Проверьте журналы входа по SSH. В macOS можно выполнить log show --predicate 'process == "sshd"' --last 7d, в Linux — проверить /var/log/auth.log, а в Windows — журнал OpenSSH/Operational в средстве просмотра событий. Ищите записи об успешной аутентификации с 127.0.0.1 или ::1 по публичному ключу svc-telemetry. Если найдётся хотя бы одна такая запись, считайте, что на машину вошёл посторонний, и рассмотрите возможность её пересоздания.

Вредоносный код также собирал имя хоста, имя пользователя, сведения о системе, рабочий каталог, адрес электронной почты из глобальной конфигурации Git, публичный IP-адрес и имена до 40 переменных окружения. Вывод Phorion однозначен: баг снизил вероятность входа злоумышленника в систему, но считать его защитой нельзя.


Нужно ли менять API-ключ APIYI после компрометации расширения Claude Code

Да, нужно. Вредоносный код собирал имена переменных окружения, содержащие KEY, TOKEN, SECRET, PASS, AWS или GCP. Хотя он не считывал значения этих переменных напрямую, атакующий уже знает, какие учётные данные есть на вашей машине. Как только туннель станет доступен, он сможет в интерактивном режиме прочитать значения переменных окружения, файлы конфигурации и историю команд shell. Поэтому, если на машине в период атаки была установлена версия 2.1.312 или 2.1.313, настроенный на ней API-ключ APIYI apiyi.com следует считать «возможно скомпрометированным».

Сразу уточним: APIYI не взломали. Речь об косвенном риске того, что ключ на вашем компьютере могли прочитать. Поэтому ключ нужно заменить, но паниковать не стоит. Вот что делать:

Шаг Действие Проверка
1 Откройте страницу токенов в консоли: api.apiyi.com/token Отображается список существующих ключей
2 Нажмите «Добавить» в правом верхнем углу и выберите группу ClaudeCode для ключа Claude Code Создан новый ключ, начинающийся с sk-
3 Замените значение ANTHROPIC_AUTH_TOKEN на новый ключ, а ANTHROPIC_BASE_URL оставьте равным https://api.apiyi.com Переменные env в ~/.claude/settings.json тоже обновлены
4 Перезапустите терминал и Claude Code Диалоги и вызовы работают нормально
5 Вернитесь на страницу токенов и отключите или удалите старый ключ Старый ключ отключён
6 Проверьте журнал вызовов Нет расхода на неизвестные модели или в необычное время

Если ваши скрипты используют OpenAI-совместимый интерфейс, не забудьте также заменить ключ, связанный с base_url="https://api.apiyi.com/v1" в коде. После замены отправьте тестовый запрос с новым ключом и убедитесь, что он работает. Если старый ключ используется на других машинах или в других проектах, замените его везде, а не только на одной машине.

🎯 Лучшая практика: на странице токенов APIYI apiyi.com можно задать лимит баланса и срок действия для каждого ключа. Рекомендуем использовать отдельный ключ для каждой машины и разделять ключи для разработки и продакшена. Тогда при похожем инциденте в будущем достаточно будет отключить только затронутый ключ.

Ещё раз подчеркнём: заменить нужно не только ключ APIYI. Токены GitHub / GitLab, ключи CI, Access Key облачных провайдеров, закрытые ключи SSH, токены npm / PyPI — всё это тоже следует заменить с доверенной машины.


FAQ: компрометация расширения Claude Code

Q1: Я пользуюсь только официальным каталогом VS Code. Я мог пострадать?

На данный момент подтверждений этому нет. Единственный подтверждённый источник распространения — Cursor Marketplace. Ни в каталоге Microsoft, ни в Open VSX вредоносной версии 2.1.313 не было.

Q2: Я пользуюсь только Claude Code CLI, без расширения для IDE. Я мог пострадать?

В результате этого инцидента — нет. Пакет CLI на npm не был скомпрометирован, затронут только VSIX-файл расширения в каталоге Cursor.

Q3: Я пользуюсь Cursor, но не устанавливал расширение Claude Code. Я мог пострадать?

Нет. Вредоносный код выполняется только при загрузке этого расширения. Если не уверены, найдите `svc-telemetry`, как описано в шаге ②. Проверка займёт всего несколько секунд.

Q4: После обновления до 2.1.314 я в безопасности?

Обновление лишь защитит от заражения в будущем. Уже добавленный публичный ключ, скрипты закрепления в системе и утекшие данные никуда не исчезнут. Поэтому по-прежнему нужно выполнить шаги ②③④⑤.

Q5: Стоит ли сейчас устанавливать версию 2.1.316?

Да. По состоянию на 31 октября версия 2.1.316 — последняя в GitHub Releases. И 2.1.314, и 2.1.316 не содержат вредоносного кода. Версии 2.1.315 между ними нет — это нормально.

Q6: Нужно ли переустанавливать систему?

Если обнаружены только публичный ключ или скрипты закрепления, обычно достаточно запустить официальный скрипт и провести повторную проверку. Если же SSH-логи показывают, что туннель действительно использовался, Phorion рекомендует пересоздать хост: по образцу вредоносного кода нельзя определить, что атакующий делал после входа.

Q7: 5 000 человек — это число подтверждённых жертв?

Нет. Cursor говорит о «максимум 5 000 пользователях» — это оценка числа тех, кто мог подвергнуться риску при скачивании или автоматическом обновлении, а не число подтверждённых заражений. Cursor сообщает, что свяжется с затронутыми пользователями напрямую.

Q8: Могут ли злоумышленники удалённо управлять моим компьютером?

Из-за упомянутой выше ошибки SSH-служба на большинстве компьютеров с macOS и Windows не была включена. Кроме того, сервер атакующих сейчас отключён. Но если удалённый вход у вас уже был включён, риск реален. Чтобы проверить, входил ли кто-то в систему, изучите SSH-логи.

Q9: Мог ли утечь мой API-ключ APIYI?

Сама платформа APIYI не была взломана. Риск в том, что переменные окружения на вашем компьютере могли быть прочитаны. Поэтому рекомендуем создать новый API-ключ на api.apiyi.com/token, обновить конфигурацию и отключить старый ключ.

Отравление расширения Claude Code: главное

  • Затронутые версии: 2.1.312 и 2.1.313 в магазине Cursor. Другие официальные каналы не пострадали.
  • Выполнение при загрузке: пользоваться расширением не нужно — бэкдор внедряется, как только оно загружается.
  • Три следа: публичный ключ в authorized_keys, скрипт для закрепления в системе и данные, отправленные через beacon.
  • В системы большинства пользователей не входили: причина — ошибка во вредоносном коде. Но это не повод отказываться от проверки.
  • Как удалить угрозу: запустите официальный скрипт, обновитесь до версии 2.1.314 или новее и при необходимости пересоздайте хост.
  • Что сделать с учётными данными: смените учётные данные Git, CI, облачных сервисов и SSH, а также API-ключ APIYI.

Источники

  1. Уведомление Cursor о безопасности: затронутые версии, индикаторы компрометации и скрипт очистки
  2. Ссылка: cursor.com/blog/claude-code-extension-security-notice
  3. Технический анализ Phorion: разбор вредоносного кода и ошибки в нём
  4. Ссылка: phorion.io/blog/offical-claude-code-vsx-compromise
  5. Анализ StepSecurity: проверка реестра и версий
  6. Ссылка: stepsecurity.io/blog/claude-code-extension-trojanized
  7. Claude Code GitHub Releases: история официальных версий
  8. Ссылка: github.com/anthropics/claude-code/releases

Итоги

Особенность этого инцидента в том, что вредоносная версия использовала официальное имя пакета. Поэтому ориентироваться только на официального издателя было недостаточно. Рекомендуемый порядок действий: сначала проверить версию расширения и его источник, затем — публичные ключи и механизмы закрепления. Если обнаружены признаки компрометации, запустить официальный скрипт и, наконец, заменить все учётные данные с доверенного устройства.

Пользователи APIYI могут воспользоваться случаем и пересмотреть группы, лимиты и сроки действия ключей по принципу «один ключ на одно устройство». Описание настроек доступно в документации по управлению токенами на apiyi.com.

Автор: техническая команда APIYI
Технические вопросы: свяжитесь с нами через главную страницу сайта APIYI. Инструкции по подключению и настройке Claude Code доступны в центре документации docs.apiyi.com.

На этот раз сменой версии не обойтись: нужно разобраться с ключами, механизмами закрепления и учётными данными.

Похожие записи