Am 29. Oktober stand im Erweiterungsmarktplatz von Cursor rund elf Stunden lang eine manipulierte Fassung der Claude-Code-Erweiterung: Anthropic.claude-code in den Versionen 2.1.312 und 2.1.313, für Windows und macOS. Cursor nennt das Zeitfenster genau, von etwa 2:27 Uhr bis 13:35 Uhr Pacific Time. BleepingComputer schätzt, dass bis zu 5.000 Entwickler das Paket in dieser Zeit geladen haben.
Gebaut hat die Erweiterung nicht Anthropic. Wie die Angreifer ein Paket unter Anthropics Namen in den Marktplatz bekamen, hat Cursor bis jetzt nicht erklärt.
Was der Schadcode tat
Die Forscher von Phorion und OpenSourceMalware haben die Bauart beschrieben: ganz vorn in der extension.js ein zusätzlicher JavaScript-Lader, der übrige Code der Erweiterung unverändert. Der Lader läuft, sobald die Erweiterung geladen wird. Niemand muss Claude Code auch nur anfassen.
Gesammelt und verschickt wurden Hostname, Benutzername, Betriebssystem, Architektur, Pfad des Home-Verzeichnisses, die Namen der Umgebungsvariablen, Arbeitsverzeichnisse, die in Git eingetragene Mailadresse und die öffentliche IP. Dazu kam der eigentliche Zweck: ein Angreifer-Schlüssel mit der Bezeichnung svc-telemetry in authorized_keys, der lokale SSH-Dienst aktiviert, ein Reverse-Tunnel nach draußen. Verankert wurde das über einen LaunchAgent unter macOS und über eine geplante Aufgabe als SYSTEM unter Windows, mit einem Startskript als Ausweichweg. Etwa jede Minute versuchte ein Hintergrundskript den Tunnel erneut.
Zwei Fehler haben Schlimmeres verhindert
Der Tunnel ging auf den meisten Rechnern nicht auf, und das liegt an schlechtem Handwerk. Unter macOS fragt der Schadcode mit systemsetup -getremotelogin, ob die Fernanmeldung läuft, aber ohne erhöhte Rechte. Zurück kommt kein Status, sondern ein Rechtefehler. Weil das Skript nur bei der Antwort „Off“ einschaltet, überspringt es den Schritt. Unter Windows versucht es den OpenSSH-Server per PowerShell zu starten, ruft das aber über /bin/sh auf, und die gibt es auf einem gewöhnlichen Windows nicht.
Schlüssel, Persistenz und die Datensammlung funktionierten trotzdem. Cursor hat die Erweiterung sofort entfernt, dann den ganzen Marktplatz abgeschaltet, alle übrigen Erweiterungen geprüft, die Schlüssel rotiert und den Marktplatz neu aufgebaut. Der Server des Angreifers unter 134.209.82.225 ist gemeinsam mit dem Hosting-Anbieter vom Netz. Die offizielle Verteilung der Erweiterung ist nach Cursors Prüfung nicht betroffen.
Deinstallieren reicht nicht
Wer das Paket in diesem Zeitfenster installiert oder aktualisiert hat, sucht zuerst nach dem Schlüssel svc-telemetry in den autorisierten SSH-Schlüsseln. Die Erweiterung zu entfernen genügt nicht: Die Nutzlast legt eigenständige Skripte ab, die weiterlaufen. Zugangsdaten und Sitzungen, die von dem Rechner aus erreichbar waren, gehören von einem vertrauenswürdigen System aus rotiert.
Der Marktplatz ist die Schwachstelle, nicht die Erweiterung
Zwei Tage nach der Embrace-Lücke in eingebetteten Browsern trifft es wieder nicht das Werkzeug selbst, sondern den Weg, über den es auf die Platte kommt. Ein Erweiterungsmarktplatz verteilt Code, der beim Laden ausgeführt wird, unter einem Herstellernamen, den niemand prüfen kann. Dass dieser Angriff am Ende an einem falschen Shell-Pfad gescheitert ist, war Glück.
Quellen
- Cursor: Security notice — malicious version of Anthropic.claude-code (2.1.312 and 2.1.313) identified in the Cursor Extension Marketplace
- BleepingComputer: Malicious Claude Code extension on Cursor planted SSH backdoors
- Phorion: Official Claude Code Extension Compromise — Security Advisory
- DoublePulsar: Anthropic hacked via Cursor to deliver remote access trojan to Claude developer laptops worldwide