Affected product(s):
| Product | Affected versions | Fixed version |
Claude Code extension for VS Code (anthropic.claude-code) distributed through the Cursor extension marketplace | 2.1.313 (only), installed or updated on October 29, 2026 between 06:27 and 17:35 (PYT, UTC-3) | 2.1.314 or later |
This affects Cursor users who installed or updated the extension during that window, including through automatic updates; there is no evidence that other distribution channels or other marketplace extensions were affected.
Description
A trojanized version of the official Claude Code extension for VS Code, identified as anthropic.claude-code 2.1.313, was publicly distributed through the Cursor editor’s extension marketplace. For approximately 11 hours on October 29, 2026, this version attempted to install a persistent SSH backdoor on developers’ machines. This is a software supply chain compromise: the version used the extension’s legitimate identifier, but Cursor’s provider stated that it was not developed by Anthropic, the extension’s developer. The incident has no assigned CVE and is classified as HIGH severity.
The provider stated that up to 5,000 Cursor users received the trojanized version and that they would be contacted directly. This figure is the maximum number of exposed users, meaning those who installed or updated to 2.1.313; it is not the number of machines confirmed to have been compromised. The provider has not disclosed how many machines had the attacker’s key added or how many tunnels were successfully established.
The provider removed the version, blocked its distribution, and shut down the entire marketplace as a precaution. It then audited access, confirmed that no other extension had been altered, rotated its keys, rebuilt the marketplace, and brought it back online. In addition, the attacker’s server was decommissioned by its cloud provider. How the package was introduced into the marketplace has not been disclosed, and the attack has not been attributed to any actor. There is no evidence that version 2.1.313 was distributed through npm, the Microsoft Visual Studio Marketplace, or the Open VSX registry.
Researchers point out that the package contains a 66-line loader prepended to the legitimate extension.js file. This code runs when the editor loads the extension, without user interaction or installation scripts, and suppresses its errors so that the extension continues to operate normally. The identified packages correspond to macOS (Apple Silicon) and Windows (x64), and the malicious code also includes a branch for Linux. When run, it:
- Collects the machine name, username, operating system and architecture, home and working directories, configured Git email address, public IP address, and the names (not the values) of up to 40 environment variables containing KEY, TOKEN, SECRET, PASS, AWS, or GCP.
- Adds the attacker’s SSH key, with the comment
svc-telemetry, to the~/.ssh/authorized_keysfile and attempts to enable the local SSH service. - Opens a reverse SSH tunnel to
134.209.82.225(port 22), retrying approximately every 60 seconds, and makes it persistent through a LaunchAgent on macOS, a scheduled task or startup script on Windows, and, according to researchers’ analysis, an@rebootentry in the crontab on Linux. - Sends the collected data via HTTP to
134.209.82.225:8099/beacon. It does not download a second stage.
The provider notes that enabling the SSH service requires administrator privileges, which the extension does not have on most macOS and Windows machines. On those machines, the step fails and the attacker cannot log in through the tunnel unless the editor is running as administrator. Nevertheless, installation of the attacker’s key, persistence, and data exfiltration are completed. Researchers warn that if the machine already had SSH remote access enabled, or it is enabled later, the backdoor will be operational. Since the attacker’s server is offline, the tunnel and data transmission no longer function. To date, no attacker access to machines or data theft beyond reconnaissance information has been publicly confirmed, although the provider warns that subsequent access to credentials through the backdoor cannot be ruled out.
Mitigation
To determine whether a machine is affected, check whether the svc-telemetry key is present using the commands published by the provider. According to researchers’ analysis, the same check used for macOS is also applicable to Linux.
# macOS (y Linux, según el análisis de investigadores)
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" }
You can also check whether the ~/.cursor/extensions/anthropic.claude-code-2.1.313-* directory exists. Uninstalling the extension may not be sufficient because persistence operates separately. As general recommendations, on machines where version 2.1.313 was installed:
- Search endpoint, network, and extension-installation telemetry for indicators of compromise, including historical connections to
134.209.82.225. - Isolate machines with evidence and preserve the evidence (SSH, process, and network logs) before cleaning them.
- Block
134.209.82.225on ports 22 and 8099. - Check the SSH logs for logins from
127.0.0.1or::1using thesvc-telemetrykey. If the tunnel is confirmed to have connected, rebuilding the machine is recommended instead of cleaning it. - Check whether SSH remote access (Remote Login on macOS) was enabled without authorization.
- If version 2.1.313 appears to be installed in any other editor, run the checks regardless.
Indicators of compromise
Network
- Attacker IP address:
134.209.82[.]225, over TCP 22 (usertunnel) and TCP 8099 (POST /beacon). - Local beacon attempt:
127.0.0.1:8099/beacon. - Queries to
ifconfig.meandapi.ipify.orgare not indicators on their own because they are legitimate services. There are no malicious domains.
SSH
- Unauthorized key:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDdvylCEJ/k2TpezcTfedrkHyFSK9IZ3vmP6vhY4Ss0P svc-telemetry. - Key fingerprint:
SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk. - Tunnel key fingerprint:
SHA256:KOAU57+ZG6u3MG4WwzPzPX2O5YEe9qdOC1Bl+6MVyDQ(commentsvc-telemetry-tun). - According to researchers, incoming logins through the tunnel appear in the SSH logs as originating from
127.0.0.1or::1with thesvc-telemetrykey.
Files and persistence
- macOS:
~/Library/LaunchAgents/com.apple.sysmond.plist(labelcom.apple.sysmond; not an Apple component),~/.config/.smt,~/.config/.smtk, and$TMPDIR/.stk_<10 hex characters>. - Windows: the
SysMonscheduled task (attempts to run as SYSTEM),%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\sysmon.cmd,%USERPROFILE%\.config\smt.cmd,%USERPROFILE%\.config\smtk,%TEMP%\.stk_<10 hex characters>, and the attacker’s key in%USERPROFILE%\.ssh\authorized_keysorC:\ProgramData\ssh\administrators_authorized_keys. - Linux (according to researchers’ analysis): an
@rebootentry in the user’s crontab that executes~/.config/.smt, along with~/.config/.smt,~/.config/.smtk, and/tmp/.stk_*. - Extension directory:
anthropic.claude-code-2.1.313-darwin-arm64oranthropic.claude-code-2.1.313-win32-x64, whoseextension.jscontains134.209.82.225andsvc-telemetry.
Processes
ssh -N -R '*:0:localhost:22'orautossh -M 0, withStrictHostKeyChecking=no,UserKnownHostsFile=/dev/null,IdentitiesOnly=yes, andBatchMode=yes.schtasks /create /tn SysMon,systemsetup -setremotelogin on, andAdd-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0.
Hashes (SHA-256)
- VSIX darwin-arm64:
432ccdee3801f99e52b8fe31f69ea9870118e96ea7ef9ecabed1479621b5ab62 - VSIX win32-x64:
3de1722901165769893bef57c72594e9a54459faa23f3091b136b79966edd081 - Malicious
extension.js:ecb58cb29078d9646ad1dcdbe51526f2d9cfea06be5fb2ab183e8ecc3ab6bf15 - Tunnel private key (
.stk_*):7e0a52885fadee05544a9e99eb18c792bec05900a5e1a66d68f8383decb0e278 smt.cmd(Windows, reported by a single source):22f682d9ff55264e934d0f43fcfbb46d58be5cfb8fe1b3a7cbb38fe089c818b0
Remediation
Remediation consists of removing the backdoor using the scripts published by the provider and updating the extension to version 2.1.314 or later:
- macOS: run the
remediate-macos.shscript as the affected user, not as root:bash remediate-macos.sh. The script removes the tampered extension, persistence mechanisms, tunnel processes, and the attacker’s key. It exits with a nonzero code if anything remains pending and warns if a service is listening on local port 22. - Windows: run the
remediate-windows.ps1script from a PowerShell console opened as administrator, with all editors closed:powershell -ExecutionPolicy Bypass -File .\remediate-windows.ps1. The script cleans all profiles on the machine. - Linux: there is no official script. According to researchers’ analysis, manual cleanup consists of removing the
@rebootentry that executes~/.config/.smtfrom the crontab (and checking whether any legitimate scheduled jobs were lost, because a failure in the malicious code may delete them), terminating the associated processes withpkill -f '\.stk_|\.config/\.smtk|\.config/\.smt', deleting~/.config/.smt,~/.config/.smtk, and/tmp/.stk_*, removing thesvc-telemetrykey from~/.ssh/authorized_keys, and checking whether the SSH service was enabled. - From a trusted machine, rotate the credentials and sessions accessible from the affected machine: GitHub and GitLab tokens, CI/CD and package registry tokens, cloud keys, and SSH keys, prioritizing environment variables whose names contain KEY, TOKEN, SECRET, PASS, AWS, or GCP.
Additional information:
- Cursor — security advisory, indicators and verification steps:
https://cursor.com/blog/claude-code-extension-security-notice - Cursor — macOS remediation script:
https://cursor.com/static/security/claude-code-extension/remediate-macos.sh - Cursor — Windows remediation script:
https://cursor.com/static/security/claude-code-extension/remediate-windows.ps1 - OpenSourceMalware — technical analysis of the malicious loader:
https://opensourcemalware.com/blog/trojanized-claude-code-extension-plants-persistent-ssh-backdoor - Phorion — analysis of persistence and code failures on macOS, Linux, and Windows:
https://phorion.io/blog/offical-claude-code-vsx-compromise/ - The Hacker News — coverage of the incident:
https://thehackernews.com/2026/10/official-claude-code-vs-code-extension.html