Dev / CodingNieuwsAI-generated

Claude Code-extensie in Cursor bevatte SSH-backdoor

Ontwikkelaars die donderdag de Claude Code-extensie in Cursor installeerden of automatisch lieten bijwerken, kregen er mogelijk een SSH-achterdeur bij. Cursor meldt dat een vervalste kopie van de extensie anthropic.claude-code ruim elf uur in zijn marketplace stond. Microsoft Threat Intelligence ontleedde de code en publiceerde vrijdag een uitgebreide analyse.

Wat er precies stond

Het gaat om de versies 2.1.312 en 2.1.313. Volgens Cursor waren die op 29 oktober beschikbaar van ongeveer 02:27 tot 13:35 Pacific Time. Microsoft bevestigt dat de kwaadaardige pakketten nooit via de Visual Studio Marketplace of via npm zijn verspreid: alleen gebruikers van de Cursor-marketplace zijn geraakt. The Register schrijft dat het om maximaal vijfduizend ontwikkelaars gaat. De besmette versie werd als eerste opgemerkt door EDR-leverancier Phorion.

Wat de code doet

In de extensie zat een JavaScript-functie die draait zodra de module wordt geladen, nog voor de eigenlijke extensiecode. Die verzamelt hostnaam, gebruikersnaam, besturingssysteem, architectuur, home- en werkmap en het globale Git-mailadres. Daarnaast zoekt hij naar namen van omgevingsvariabelen waarin KEY, TOKEN, SECRET, PASS, AWS of GCP voorkomt, tot veertig stuks. Microsoft benadrukt dat alleen die namen zijn verstuurd en niet de waarden erachter.

Vervolgens zet de loader een eigen Ed25519-publieke sleutel in authorized_keys, met het commentaar svc-telemetry, en start een omgekeerde SSH-tunnel naar poort 22 van de werkplek. Op Linux en macOS gebruikt hij daarvoor autossh of anders ssh, op Windows een verborgen PowerShell-lus die zestig seconden wacht na een mislukte poging.

Voor persistentie schrijft de code buiten de extensiemap. Op macOS komt er een LaunchAgent ~/Library/LaunchAgents/com.apple.sysmond.plist, op Linux een @reboot-regel in de crontab van de gebruiker, op Windows een geplande taak met de naam SysMon en als terugvaloptie sysmon.cmd in de map Opstarten. Die namen lijken bewust op legitieme monitoringcomponenten.

Cursor en Phorion melden wel een belangrijke beperking: het opzetten van de tunnel vereist beheerdersrechten op macOS en Windows, en die had het script in de meeste gevallen niet. De sleutel plaatsen, de persistentie inrichten en de hostgegevens versturen gebeurde desondanks.

Anthropic: niet bij ons ingebroken

Anthropic heeft tegen Microsoft bevestigd dat zijn eigen systemen niet zijn gecompromitteerd en dat het deze extensie niet heeft gebouwd of gepubliceerd. Felix Rieseberg, van Anthropics technische staf, schreef dat een aanvaller via toegang tot de marketplace van Cursor een bewerkte kopie plaatste. Hoe die toegang is verkregen, hebben Cursor en Anthropic niet toegelicht.

Wat je nu kunt doen

  • Bijwerken of verwijderen van de extensie is niet genoeg: wat buiten de installatiemap is weggeschreven, blijft staan.
  • Controleer ~/.ssh/authorized_keys op macOS en Linux op een sleutel met het commentaar svc-telemetry. Kijk op Windows ook in %USERPROFILE%\.ssh\authorized_keys en in C:\ProgramData\ssh\administrators_authorized_keys.
  • Vergelijk de sleutel met de vingerafdruk uit Microsofts IOC-lijst voordat je hem weghaalt, en laat je eigen sleutels staan.
  • Verwijder de LaunchAgent, de crontab-regel of de geplande taak, plus de bijbehorende .smt- en .smtk-bestanden.
  • Zoek in je netwerklogboek naar verkeer met 134.209.82.225, het adres dat voor de tunnel en de beacon werd gebruikt.
  • Rouleer tokens en sessies die vanaf die machine bereikbaar waren, en doe dat vanaf een schoon systeem.
  • Cursor biedt de scripts remediate-macos.sh en remediate-windows.ps1 aan. Microsoft adviseert eerst bewijsmateriaal te bewaren voordat je opruimt.

Beheerders die Cursor uitrollen, wijst Microsoft op twee instellingen uit de hardening-gids van Cursor: extensies beperken tot goedgekeurde uitgevers, en een wachttijd instellen voordat net gepubliceerde versies geïnstalleerd mogen worden.