CUTSIGNcutting for sign — daily OSINT threat read
AI-generated draft, unreviewed. Version 1, written by a model from the stored public sources on 2026-10-30; hype score 4. It is regenerated when the evidence changes and is published as a verdict card under /cards/ once it crosses the publish bar. Status: superseded.

Trojanized Claude Code extension 2.1.313 on Cursor Marketplace adds SSH key, persistence and beacon

Hunt / IR + PatchP1confidence: mediumP1 +2deep read +1primary source +1P1: card on day one (score below the publish bar; revised as the story develops)

A malicious Claude Code extension build (2.1.313) was distributed through the Cursor Marketplace for about 11 hours on Oct 29, 2026. Today, find any developer host that got it, then hunt for the 'svc-telemetry' SSH key, IDE-spawned persistence and traffic to 134.209.82.225.

Triage: The backdoor reached developer workstations through an auto-updating marketplace, and the reporting gives concrete artifacts to hunt today. [S1]

The core claim comes from reputable secondary reporting [S1]. The pipeline attributes the technical quotes to the GitHub releases page [S2], but they read like news text, so vendor confirmation of each detail is unverified.

What happened

Timeline

2026-10-29 ~02:27 PTMalicious 2.1.313 becomes available on the Cursor Marketplace S1
2026-10-29 ~13:35 PTDistribution window ends S1
2026-10-30Public reporting with IoCs and hunting guidance S1

Detect

svc-telemetry key in authorized_keys · FIM / EDR file events on ~/.ssh/authorized_keys

index=* (file_path="*/.ssh/authorized_keys" OR TargetFilename="*authorized_keys") "svc-telemetry" | stats count min(_time) as first max(_time) as last by host, user, file_path, process_name

A hit means: The attacker key was planted on this host. Treat the host as compromised and check whether SSH is enabled.

Traffic to C2 134.209.82.225 · Firewall / proxy / EDR network events

index=* (dest_ip="134.209.82.225" OR dest="134.209.82.225" OR url="*134.209.82.225*") | stats count min(_time) as first max(_time) as last by src_ip, user, dest_port, process_name, url

A hit means: Port 8099 means the beacon sent host recon. Other ports, especially an SSH session, suggest the reverse tunnel was established.

Persistence created by the IDE · EDR process/file events, Windows 4698, macOS LaunchAgents FIM

index=* earliest="10/29/2026:00:00:00" (parent_process_name="*Cursor*" OR process_name="*Cursor*") (process_name IN ("schtasks.exe","crontab","launchctl") OR EventCode=4698 OR file_path="*/Library/LaunchAgents/*") | stats count by host, user, process_name, command_line, file_path

A hit means: The Cursor process tree created a scheduled task, cron entry or LaunchAgent. This likely matches the loader's persistence.

Beacon pattern and IP lookup from IDE · Proxy

index=* ((dest_port=8099 uri_path="/beacon") OR (url="*api.ipify.org*" (process_name="*Cursor*" OR process_name="*node*"))) | stats count by src_ip, user, url, process_name

A hit means: This matches the beacon behaviour and should catch it if the C2 IP changes. An ipify request alone is weaker and needs corroboration.

Verify

Scope

Affected

Only if

Not affected if

Fixed in: 2.1.314 (pipeline exposure data; confirm against [S2])

Enumerate

Contain

Eradicate

Recover

Re-enter the loop when

Debrief

Detection coverage — checked automatically

CategorySourceStatus
VendorImpacted vendor / CERT advisorypublished — primary source among the thread's sources: https://github.com/anthropics/claude-code/releases
GovernmentCISA KEVnot checkable — no CVE: the catalog is keyed by CVE
EDR / endpoint VMCrowdStrike blognothing found — no post names it among the feed's 10 newest items
EDR / endpoint VMMicrosoft Security blogpublished — Tracking AI adoption in North Korean threat actor tradecraft · Agents are your newest insiders. Security must move at their speed. · The hidden network: Inside the phishing infrastructure ecosystem powering global cybercrime (names the campaign in the title; the feed text carries no CVE id)
EDR / endpoint VMSentinelOne blogpublished — Bring Your Own Vulnerable Driver: How EDR Killing Became an Industry · The Good, the Bad and the Ugly in Cybersecurity - Week 41 (2026) (names the campaign in the title; the feed text carries no CVE id)
EDR / endpoint VMSentinelOne Labspublished — Don’t Call Us, We’ll Call Your APIs | TraderTraitor Backdoors Resurface on Victim With No Crypto Ties (names the campaign in the title; the feed text carries no CVE id)
WAF / edgeAkamai blognothing found — no post names it among the feed's 1177 newest items
WAF / edgeCloudflare WAF managed-ruleset changelognothing found — no post names it among the feed's 133 newest items
Cloud / containerWiz blognothing found — no post names it among the feed's 712 newest items
IDS / researchCisco Talos blogpublished — IR trends Q3 2026: Actors impersonate IT help desks in vishing attacks as ransomware activity increases · Inside KeyDrift: Analyzing historical UAT-11473 activity on Cisco SD-WAN (names the campaign in the title; the feed text carries no CVE id)
Detection contentElastic detection rulespublished — 34 files name Trojanized / Claude / Cursor: rules/macos/command_and_control_suspicious_curl_from_macos_application.toml, rules/macos/discovery_suspicious_sip_check.toml, rules/macos/discovery_full_disk_access_check.toml, rules/macos/persistence_ssfilecopyreceiver_file_writes.toml
Detection contentElastic Security Labspublished — Auditing the auditor: Unmasking Apex Accelerator · No MDM for Linux? A 68-line Elastic workflow keeps every endpoint's config current (names the campaign in the title; the feed text carries no CVE id)
Detection contentSigmaHQ rulespublished — 15 files name Trojanized / Claude / Cursor: rules-emerging-threats/2023/TA/Lazarus/README.md, rules/windows/process_creation/proc_creation_win_lolbin_gather_network_info.yml, rules-emerging-threats/2023/TA/Lazarus/image_load_apt_lazarus_side_load_activity.yml, rules/windows/process_creation/proc_creation_win_susp_gather_network_info_execution.yml
Detection contentSplunk ESCUpublished — 36 files name Trojanized / Claude / Cursor: stories/gomir.yml, stories/salat_stealer.yml, stories/meduza_stealer.yml, stories/starland_rat_campaign.yml
MSSP / IR firmsArctic Wolf blognothing found — no post names it among the feed's 10 newest items
MSSP / IR firmsHuntress blogpublished — Fighting AI Slop in Production Codebases: How Huntress Improved Fable 5.1’s API Recall (names the campaign in the title; the feed text carries no CVE id)
MSSP / IR firmsRapid7 blognothing found — no post names it among the feed's 20 newest items
MSSP / IR firmsSophos threat researchnothing found — no post names it among the feed's 15 newest items
ResearchUnit 42nothing found — no post names it among the feed's 15 newest items

Checked automatically 2026-10-30 13:07Z from public sources: 10 published, 8 nothing found, 1 not machine-checkable, 0 failed. "Nothing found" means the public source answered and had nothing, as of that moment; a feed covers only its newest posts. Re-checked daily.

What a person would still look up (5)
EDRDoes it record file writes to ~/.ssh/authorized_keys and child processes of the Cursor/VS Code extension host on macOS, Windows and Linux?
FIMAre authorized_keys and ~/Library/LaunchAgents monitored on developer endpoints?
Proxy / firewallAre outbound HTTP on non-standard ports (8099) and destination IPs logged for developer subnets?
Asset / software inventoryCan you list IDE extensions with their versions and install source per host?
Windows loggingIs Event ID 4698 (scheduled task created) collected from workstations?

Exposure queries — generated automatically

No CVE in this campaign: nothing an internet scanner keys on. Scope by product in your own tool.

Scope every query in your own tool, never in a shared document: Shodan `net:<your_ranges>`, `org:"<your_org>"` or `hostname:<your_domain>` (or a Shodan Monitor network alert, which applies the scope for you); Censys `host.ip: <your_ranges>` or `host.dns.names: <your_domain>`. Then compare the banner version with the affected range. Generated automatically 2026-10-30 13:07Z from the CVE ids and NVD's CPE configurations, each Shodan query counted against Shodan itself; re-built daily with the coverage check.

Open questions

Sources

Public OSINT only. AI-generated by the pipeline; structure follows the DAIR model from Dynamic Incident Response (Joshua Wright). Published automatically once it crosses the publish bar.