Un'estensione di Claude Code in Cursor ha installato una backdoor SSH

Un'estensione di Claude Code in Cursor ha installato una backdoor SSH

Una versione malevola di Claude Code, identificata come 2.1.313, è stata disponibile nel marketplace delle estensioni per VS Code di Cursor il 29 ottobre. Il pacchetto tentava di aggiungere una chiave SSH controllata da un aggressore, mantenere un tunnel remoto e inviare informazioni sul dispositivo. Cursor stima che fino a 5.000 utenti potrebbero essere stati coinvolti e afferma che li contatterà direttamente.

L'estensione usava l'identificatore legittimo anthropic.claude-code, ma Cursor ha chiarito che quella versione non era stata sviluppata da Anthropic. L'incidente è rimasto circoscritto al marketplace di Cursor: OpenSourceMalware ha indicato che il pacchetto npm di Claude Code e le estensioni distribuite da Open VSX e Microsoft non erano malevoli. The Hacker News ha riferito che Anthropic ha pubblicato la versione 2.1.314 su Open VSX e nel marketplace ufficiale di VS Code.

Un payload malevolo accanto al codice legittimo

La versione manomessa è stata disponibile all'incirca dalle 2:27 alle 13:35, ora del Pacifico, del 29 ottobre. Cursor ha dichiarato di aver rilevato l'incidente, rimosso il pacchetto e bloccato la distribuzione. A titolo precauzionale, ha chiuso temporaneamente il marketplace di VS Code, verificato gli accessi e controllato che altre estensioni non fossero state manomesse. In seguito ha ruotato le proprie chiavi, ricostruito il marketplace e lo ha rimesso online.

L'analisi di OpenSourceMalware ha descritto un loader malevolo di 66 righe aggiunto prima del normale codice dell'estensione. Secondo l'analisi, era sufficiente che VS Code caricasse il modulo: non era necessario avviare una conversazione con Claude. L'estensione poteva continuare a funzionare normalmente mentre eseguiva in background le azioni del payload aggiunto.

Il programma raccoglieva dati come il nome del dispositivo e dell'utente, il sistema operativo, l'architettura, la directory home, la directory di lavoro e l'indirizzo email globale configurato in Git. Raccoglieva anche i nomi delle variabili d'ambiente che potevano contenere termini come KEY, TOKEN, SECRET, PASS, AWS o GCP; secondo OpenSourceMalware, nel primo invio non ne includeva i valori.

In seguito tentava di aggiungere alle chiavi autorizzate dell'utente una chiave SSH etichettata svc-telemetry, abilitare il servizio SSH locale e aprire un tunnel inverso verso una macchina controllata dall'aggressore. Installava anche meccanismi di persistenza: un LaunchAgent su macOS e, su Windows, un'attività pianificata o uno script di avvio alternativo. Nella sua analisi, OpenSourceMalware ha segnalato che il codice prevedeva inoltre un ramo con cron per Linux.

“It was pulled very quickly, but anyone who has their Claude Code instance set to auto-update could have consumed the malware”

— Jenn Gile, cofondatrice di OpenSourceMalware

Il server è stato messo offline; Cursor invita a controllare i dispositivi

Il tunnel e l'invio dei dati puntavano all'indirizzo 134.209.82.225. Cursor ha dichiarato di aver collaborato con il provider di hosting per disconnettere il server, perciò quelle comunicazioni non funzionano più. L'azienda ha anche avvertito che l'operazione di abilitazione di SSH richiede i permessi di amministratore e sarebbe probabilmente fallita sulla maggior parte dei dispositivi macOS e Windows privi di tali privilegi. Ciò non impediva all'estensione di aggiungere la chiave, installare meccanismi di persistenza o inviare i dati raccolti.

Cursor raccomanda a chi ha installato o aggiornato alla versione 2.1.313 dal suo marketplace durante l'intervallo indicato di verificare se tra le chiavi SSH autorizzate compare svc-telemetry. Se la trovano, invita a isolare il dispositivo, eliminare la chiave e i meccanismi di persistenza e valutare se sia necessario ricostruire il sistema. Disinstallare l'estensione potrebbe non bastare, perché gli script di persistenza restano separati dal pacchetto.

L'azienda consiglia inoltre di ruotare, da un dispositivo affidabile, le credenziali e le sessioni a cui il dispositivo interessato potrebbe aver avuto accesso. OpenSourceMalware non ha trovato download di payload aggiuntivi nel codice analizzato; tuttavia, il tunnel avrebbe fornito una via di accesso SSH se il servizio locale fosse stato abilitato. Cursor non ha attribuito pubblicamente l'attacco nell'avviso e The Hacker News ha osservato che non era chiaro il metodo usato per introdurre l'aggiornamento.

Fonti: Cursor, OpenSourceMalware, The Hacker News