Zwischen etwa 02:27 und 13:35 Uhr pazifischer Zeit am 29. Oktober stand eine manipulierte Kopie der offiziellen Claude-Code-Erweiterung im Cursor-Marketplace zum Download — Version 2.1.312 und 2.1.313, für Windows und macOS. Wer in diesem Fenster installierte oder automatisch aktualisierte, lud keinen Editor-Helfer, sondern einen Loader, der einen SSH-Schlüssel auf dem Rechner platzierte, einen Reverse-Tunnel aufbaute und Persistenz anlegte.

Cursor hat den Vorfall selbst veröffentlicht, den Marketplace abgeschaltet, Schlüssel rotiert und neu aufgebaut. Der Angreifer-Server ist abgeschaltet. Microsoft hat den injizierten JavaScript-Code analysiert und eigene Erkennungen veröffentlicht. Anthropic bestätigte gegenüber Microsoft, dass die eigenen Systeme nicht kompromittiert wurden und die bösartige Version nicht von Anthropic stammt. Der Visual-Studio-Marketplace und das npm-Paket waren nach Microsofts Angaben nicht betroffen.

Was der Loader tatsächlich tut

Die erste Stufe ist Aufklärung. Beim Laden des Moduls, noch vor der regulären Initialisierung, sammelt der Code Hostname, Benutzername, Betriebssystem, Architektur, Home-Verzeichnis, Arbeitsverzeichnis, die konfigurierte Git-E-Mail und die öffentliche IP. Zusätzlich sucht er Umgebungsvariablen, deren Namen auf KEY, TOKEN, SECRET, PASS, AWS oder GCP hindeuten, und behält bis zu 40 Treffer. Wichtig für die Bewertung des Schadens: Nach Microsofts Analyse werden Variablennamen, nicht Werte übertragen.

Die zweite Stufe ist Zugang. Der Loader prüft die Datei authorized_keys auf den Kommentar svc-telemetry. Fehlt er, hängt er einen eingebetteten Ed25519-Public-Key an — eine Autorisierung für jeden, der den passenden Private Key besitzt. Anschließend dekodiert er einen zweiten, separaten Schlüssel für die ausgehende Verbindung, schreibt ihn in eine versteckte Datei mit dem Muster .stk_ plus zehn Hexadezimalzeichen und startet eine SSH-Verbindung mit deaktivierter Host-Key-Prüfung (StrictHostKeyChecking=no, UserKnownHostsFile=/dev/null), die einen Port auf dem Remote-Server an den lokalen Port 22 weiterleitet.

Die dritte Stufe ist Persistenz. Unter macOS ein LaunchAgent namens com.apple.sysmond.plist — ein Name, der einen Apple-Systemdienst nachahmt — unter Linux ein Cron-Eintrag mit @reboot, unter Windows eine geplante Aufgabe namens SysMon, die SYSTEM-Rechte anstrebt, mit einem Batch-Fallback im Startup-Ordner. Schlägt der Tunnel fehl, wird er im Minutentakt neu versucht.

Wie erfolgreich war der Angriff?

Weniger, als der Code beabsichtigte — aber nicht harmlos. Das Aktivieren des lokalen SSH-Dienstes erfordert Administratorrechte, die die Erweiterung auf den meisten macOS- und Windows-Rechnern nicht hat. Cursor zufolge scheiterte dieser Schritt dort. Was blieb: der angehängte Schlüssel, die Persistenz-Artefakte und die übermittelten Host-Details.

Genau darin liegt die eigentliche Lehre. Ein Angriff, der die Tür nicht öffnet, kann trotzdem das Schloss austauschen. Und weil die Nutzlast Skripte außerhalb des Erweiterungsordners ablegt, reicht Deinstallieren nicht — das ist die Stelle, an der viele Aufräumversuche scheitern werden.

Prüfen und aufräumen

Der Marker ist der Schlüsselkommentar. Unter macOS genügt:

grep -qs svc-telemetry ~/.ssh/authorized_keys && echo "key found" || echo "clean"

Unter Windows sind %USERPROFILE%\.ssh\authorized_keys und C:\ProgramData\ssh\administrators_authorized_keys zu prüfen. Wer den Marker findet, sollte den Rechner als kompromittiert behandeln, den öffentlichen Schlüssel entfernen, Persistenz-Artefakte und laufende Tunnel-Prozesse beseitigen und Zugangsdaten von einem sauberen System aus rotieren. Cursor stellt dafür Skripte bereit, die mit einem Fehlercode enden, wenn etwas zurückbleibt.

Was das über Erweiterungs-Marketplaces sagt

Die eigentliche Schwachstelle war nicht Anthropic und nicht der Code selbst, sondern die Annahme, ein Marketplace sei eine vertrauenswürdige Quelle. Eine Erweiterung läuft mit den Rechten des Entwicklers, aktualisiert sich automatisch und hat Zugriff auf Dateisystem, Umgebung und Prozesse. Ein einzelner kompromittierter Veröffentlichungsweg genügt.

Microsoft empfiehlt genau die Gegenmaßnahmen, die man sonst nur aus Paket-Ökosystemen kennt: Erweiterungen auf genehmigte Herausgeber beschränken und eine Abkühlphase für Neuveröffentlichungen konfigurieren, damit eine frische, bösartige Version nicht sofort auf allen Rechnern landet. Für Teams mit vielen Entwicklern ist das keine Paranoia, sondern die einzige Kontrolle zwischen „veröffentlicht“ und „installiert“.