Инцидент затронул только расширение, скачанное из маркетплейса Cursor, и только две версии: 2.1.312 и 2.1.313 для Windows и macOS. Официальная сборка Anthropic и остальные расширения не задеты — Cursor проверил доступы и не нашёл других изменений.
Что делал payload
Окно распространения — примерно с 02:27 до 13:35 по тихоокеанскому времени 29 октября. Вредоносный extension.js содержал адрес 134.209.82.225 и метку svc-telemetry. Расширение:
- собирало имя хоста, пользователя, ОС, архитектуру, домашний каталог, имена переменных окружения, рабочие каталоги, Git-email и публичный IP;
- пыталось добавить SSH-ключ атакующего в
authorized_keys, включить локальный SSH и открыть обратный туннель; - прописывало живучесть через LaunchAgent на macOS или задачу с попыткой запуска от SYSTEM на Windows, с повтором туннеля примерно каждые 60 секунд.
На большинстве машин шаг с SSH падал: для включения сервиса нужны права администратора, которых у расширения нет. Но ключ, persistence и отправка телеметрии успевали сработать. Сервер атакующих уже отключён, маркетплейс на время полностью останавливали, ключи Cursor ротировали и пересобрали.
Как проверить себя
Ищите в authorized_keys ключ с комментарием svc-telemetry. На macOS это ~/.ssh/authorized_keys, на Windows — пользовательский файл и C:\ProgramData\ssh\administrators_authorized_keys. Дополнительные следы: ~/.config/.smt, ~/.config/.smtk, файлы /tmp/.stk_*, LaunchAgent com.apple.sysmond, задача SysMon или скрипт в Startup.
Что делать
Удалять одно расширение недостаточно: payload оставляет отдельные скрипты живучести. Нужно снять ключ, persistence и процессы туннеля, а затем сменить все учётные данные, доступные с хоста, — с другой, заведомо чистой машины. Если есть сомнения, хост лучше пересобрать.
The incident affected only the extension downloaded from the Cursor marketplace, and only two builds: 2.1.312 and 2.1.313 for Windows and macOS. Anthropic’s official distribution and other extensions were not affected; Cursor audited access and found no other tampering.
What the payload did
The distribution window ran from about 02:27 to 13:35 Pacific time on 29 October. The malicious extension.js contained the address 134.209.82.225 and the marker svc-telemetry. The extension:
- collected hostname, username, OS, architecture, home directory, environment-variable names, working directories, configured Git email and public IP;
- tried to add an attacker-controlled SSH key to
authorized_keys, enable local SSH and open a reverse tunnel; - installed persistence via a LaunchAgent on macOS or a scheduled task attempting to run as SYSTEM on Windows, retrying the tunnel roughly every 60 seconds.
On most machines the SSH step failed: enabling the service needs administrator rights the extension does not have. The key, persistence and telemetry still went through. The attacker server has been taken offline, the marketplace was shut down as a precaution, and Cursor rotated keys and rebuilt it.
How to check
Look for a key commented svc-telemetry in authorized_keys: ~/.ssh/authorized_keys on macOS, plus the per-user file and C:\ProgramData\ssh\administrators_authorized_keys on Windows. Other traces include ~/.config/.smt, ~/.config/.smtk, /tmp/.stk_*, the LaunchAgent com.apple.sysmond, the SysMon task or a Startup script.
What to do
Uninstalling the extension is not enough: the payload drops standalone persistence scripts. Remove the key, the persistence and the tunnel processes, then rotate every credential reachable from the host — from a different, known-clean machine. If in doubt, rebuild the host.