activate: an Ed25519 key is appended to ~/.ssh/authorized_keys with 0700/0600 permissions.Phorion published a breakdown of the backdoor in the official Claude Code extension for VS Code — the very bundle hosted on Cursor Marketplace. The build number is 2.1.313. An IIFE prefix was glued into the minified extension.js: it pulls in child_process, fs, os, path, http, and crypto and fires the moment Node loads the file, before the regular activate even runs. No clicks needed — the extension installs, and the payload is already working.
The mechanics from there are simple, and therefore unpleasant. The code creates ~/.ssh, appends the attacker's Ed25519 public key to authorized_keys with the comment svc-telemetry, sets 0700 on the directory and 0600 on the file. It then tries to bring up the daemon: on Linux, systemctl for sshd/ssh with a fallback to service and /etc/init.d/; on Windows, installing and starting OpenSSH Server via PowerShell; on macOS, checking Remote Login and sudo -n systemsetup -setremotelogin on. Key presence is checked by the svc-telemetry string rather than the key itself — when hunting, it's better to compare fingerprints.
On macOS, the logic trips over itself. Under a regular user, systemsetup -getremotelogin prints an access error and exits with status 0 instead of Off. The script only enables SSH on an exact match with Off — so the step is simply skipped. The key and persistence remain in place, though, and host reconnaissance still goes to the operator.
Our assessment: this story isn't about Claude Code as a product, it's about the supply chain. Extensions run with IDE privileges and user privileges — meaning they get files, source code, the terminal, and keys right after module load. Agentic coding extensions request exactly this access by nature, and there's no way to tell normal behavior from a foreign implant by eye.
What it changes: the 'install from the marketplace and forget' habit is no longer free. For a team, that's hours of incident response: sweep the fleet, check authorized_keys, revoke keys, reissue tokens. For platforms, it's a question of moderation and bundle signing, not just install counts.
Who wins: Phorion — the writeup hit the HN top, and in the post itself they casually mention taking first place in independent EDR evaluations, so the marketing here is free. Who loses: Cursor as the marketplace host, and the Claude Code brand, which suspicion lands on first.
Weak spots abound. It's unclear how exactly the malicious code got into the bundle, who authored it, and how many installs are affected. There's not a word about confirmed compromises or whether anyone reviewed the build before publication. The post contains no reaction from Cursor or Anthropic — the release takedown is described per Phorion's account. There's a single source, and it's a vendor blog with an obvious commercial interest.
Is it worth installing IDE extensions from an alternative marketplace like Cursor when the same package is available on the VS Code Marketplace — or is any duplicate channel already a risk?
Who's responsible for an incident like this: the platform that hosted the bundle, or the owner of the extension brand whose name was on the packaging?
Is checking fingerprints in authorized_keys enough as a practice, or is it time for IDE marketplaces to introduce mandatory build signing and attestation?
Forecast: within the quarter, we expect a public statement from Cursor or Anthropic with a timeline and a list of affected versions. If it doesn't come, the story will remain in 'one vendor said so' status.
Disclaimer: not officially confirmed, single source — a vendor blog.
Source: Phorion
Source: phorion.io · post in Telegram