Blog
Kontakt os
AI

Falsk Claude Code-udvidelse i Cursor plantede en SSH-bagdør

Torsdag den 29. oktober lå der i knap elleve timer en falsk udgave af Claude Code-udvidelsen i Cursors markedsplads. Den bar Anthropics rigtige navn og rigtige udgiver-id, men var ikke lavet af Anthropic. Når en udvikler installerede eller …

Torsdag den 29. oktober lå der i knap elleve timer en falsk udgave af Claude Code-udvidelsen i Cursors markedsplads. Den bar Anthropics rigtige navn og rigtige udgiver-id, men var ikke lavet af Anthropic. Når en udvikler installerede eller opdaterede den, lagde den en angribers SSH-nøgle ind på maskinen, sendte oplysninger om computeren videre og forsøgte at åbne en permanent fjernadgang. Ifølge Cursor er højst 5.000 brugere berørt, og selskabet vil kontakte dem direkte.

Vi har læst Cursors egen sikkerhedsmeddelelse og den uafhængige dækning fra blandt andet The Hacker News, og vi skiller her Cursors egne oplysninger fra det, uafhængige kilder har bekræftet. For danske virksomheder handler sagen mindre om Cursor som produkt og mere om en ny realitet: jeres AI-udviklingsmiljø er blevet en del af forsyningskæden og skal styres som sådan.

 

Hvad skete der med Claude Code-udvidelsen i Cursor?

Mellem cirka klokken 2.27 og 13.35 Pacific-tid den 29. oktober, altså cirka 10.27 til 21.35 dansk tid, kunne man hente en manipuleret version af udvidelsen Anthropic.claude-code fra Cursors egen markedsplads. The Hacker News peger på version 2.1.313, mens Cursor i sin opdaterede meddelelse også nævner 2.1.312. Udgaven blev udsendt under udvidelsens rigtige udgiver-id, ikke som en separat falsk kopi, og det er netop det, der gør angrebet svært at opdage. Anthropic har siden udgivet en ren version 2.1.314 til både Open VSX og Microsofts officielle VS Code-markedsplads.

Problemet ramte kun Cursors markedsplads. Ifølge The Hacker News' gennemgang af hændelsen er der ingen tegn på, at den manipulerede udgave nåede ud via Open VSX eller Microsofts marketplace, og tidligere meldinger om, at Open VSX var ramt, er siden blevet korrigeret. Selve angrebsvejen er stadig ukendt. Hverken Cursor eller de uafhængige forskere har kunnet oplyse, hvordan den manipulerede pakke kom ind på markedspladsen, og det er et punkt, der bør indgå i enhver risikovurdering: Når et betroet navn kan dukke op i en kompromitteret form uden en kendt årsag, kan I ikke stole på navnet alene.

Hændelsen blev fundet af forskere fra OpenSourceMalware, og den skadelige kode var ifølge gruppen en lille indlæsningsrutine på 66 linjer, der var sat ind før den rigtige udvidelses kode. Cursor skriver selv, at de malware-inficerede versioner ikke er udviklet af Anthropic. Anthropic er altså ikke kilden til koden, men udgiverens navn blev brugt som dække.

 

Sådan virkede bagdøren, og hvorfor den oftest fejlede

Udvidelser i editorer som Cursor og VS Code kører med brugerens egne rettigheder og har adgang til filsystem, terminal og netværk. Den manipulerede udgave udnyttede det i tre trin. Først indsamlede og sendte den oplysninger om maskinen: værtsnavn, brugernavn, styresystem, arkitektur, stien til hjemmemappen, arbejdsmapper, den konfigurerede Git-e-mail og den offentlige IP-adresse hentet via tjenester som ifconfig.me og api.ipify.org. Den tog også navnene på op til 40 miljøvariabler, der indeholdt ord som KEY, TOKEN, SECRET, PASS, AWS eller GCP.

Her er en vigtig nuance, som sikkerhedsforskeren Paul McCarty fremhæver: Det var navnene på miljøvariablerne, ikke deres værdier, der lå i den første afsendelse. Men navnene alene afslører, hvilke cloud-udbydere, CI-systemer og typer af hemmeligheder en maskine er sat op med. Det er rekognoscering, der gør et senere, mere målrettet angreb lettere. Cursor understreger da også, at den begrænsede indsamling ikke udelukker, at angriberen senere kunne have fået adgang til egentlige hemmeligheder gennem bagdøren.

Andet trin var selve bagdøren. Koden forsøgte at lægge angriberens SSH-nøgle, mærket svc-telemetry for at ligne noget harmløst, ind i filen authorized_keys, slå den lokale SSH-tjeneste til og åbne en omvendt SSH-tunnel ud til serveren 134.209.82.225. En beacon sendte værtsdata til samme server på port 8099 over en ukrypteret HTTP-forbindelse. Tredje trin var persistens, så adgangen overlevede en genstart: en LaunchAgent på macOS, en planlagt opgave der forsøgte at køre som SYSTEM med et Startup-script som fallback på Windows, og en crontab-post på Linux. Tunnelen blev forsøgt genoprettet cirka hvert tresindstyvende sekund.

Den gode nyhed er, at det mest alvorlige trin oftest fejlede. At tænde den lokale SSH-tjeneste kræver administratorrettigheder, som udvidelsen ikke har på de fleste macOS- og Windows-maskiner. Kombineret med fejl i den skadelige kode betød det, at angriberen i praksis sjældent kunne logge ind gennem tunnelen. Cursor har desuden i samarbejde med serverens hostingudbyder taget angriberens server ned, så den omvendte adgang og afsendelsen af værtsdata ikke længere virker. Men, og det er et vigtigt men, SSH-nøglen, persistensen og den første afsendelse af oplysninger skete stadig på de ramte maskiner. Derfor er oprydning nødvendig, også selvom tunnelen aldrig kom op at stå.

 

Er I ramt? Tjek det på to minutter

Det hurtigste tjek er at lede efter angriberens nøgle. Hvis nogen hos jer installerede eller opdaterede Claude Code-udvidelsen i Cursor den 29. oktober, så kig i filen authorized_keys i brugerens .ssh-mappe efter teksten svc-telemetry. Findes den, er maskinen ramt. Vær særligt opmærksom på udviklere, der har slået automatiske opdateringer til, for så kan den manipulerede udgave være kommet ind uden et aktivt valg.

Og vær opmærksom: det er ikke nok at afinstallere udvidelsen. Cursor advarer selv om, at den skadelige kode efterlader selvstændige scripts, der bliver ved med at køre. En ramt maskine skal have fjernet den uautoriserede SSH-nøgle, persistensmekanismerne og eventuelle kørende tunnelprocesser, og I bør vurdere, om maskinen helt skal genopbygges. Cursor har lagt oprydningsscripts frem, remediate-macos.sh og remediate-windows.ps1, der afslutter med en fejlkode, hvis noget stadig ligger tilbage. Og roter legitimationsoplysninger og sessioner, der har været tilgængelige fra de ramte maskiner, fra et rent og betroet system, ikke fra den maskine I er ved at rydde op på.

 

Et betroet navn er ikke længere en garanti

Det principielt nye er ikke malwaren i sig selv, men kanalen. Angrebet kom gennem markedspladsen for et af de mest udbredte AI-kodeværktøjer og under et navn, udviklere har tillid til. Vi har tidligere beskrevet en kapret npm-pakke, der gik målrettet efter MCP-nøgler i blandt andet Claude Desktop og Cursor, og vi har skrevet om AI-værktøjer som en ny angrebsflade. Denne gang rammer det selve kanalen, udvidelserne distribueres igennem.

Cursor ejes siden sommeren 2026 af SpaceX efter opkøbet af Anysphere, og værktøjet bruges af et stort antal udviklere verden over. Netop udbredelsen er en del af pointen. Jo mere et værktøj vokser, jo mere attraktivt bliver det at angribe, og jo flere maskiner rammer en enkelt manipuleret pakke på de få timer, den er tilgængelig. At vinduet lå midt i den europæiske arbejdsdag gør det sandsynligt, at europæiske udviklere er godt repræsenteret blandt de ramte, selvom Cursor ikke har oplyst en geografisk fordeling.

 

AI-kodeværktøjer er nu en del af jeres forsyningskæde

De fleste virksomheder har styr på, hvilken almindelig software de installerer. Men mange har på kort tid givet udviklere adgang til agentbaseret kodning og en strøm af udvidelser, plugins og MCP-servere uden den samme styring. Det er forståeligt, for værktøjerne er nye og udvikler sig hurtigt. Men en udvidelse i en editor har reelt lige så dyb adgang til en udviklers maskine som et vilkårligt program, ofte med adgang til kildekode, API-nøgler og i sidste ende produktionssystemer.

Det gør AI-kodeværktøjerne til et led i jeres forsyningskæde på linje med biblioteker og pakker. De skal behandles derefter. Det betyder blandt andet en liste over, hvilke udvidelser der er godkendt, kontrol med automatiske opdateringer af det kritiske, og en forståelse for, at Shadow AI, altså værktøjer medarbejderne selv tager i brug uden om it, er en reel risiko her. Det samme er MCP-servere, som også kan køre kode på udviklerens maskine.

 

GDPR og NIS2: skal hændelsen anmeldes?

De data, den manipulerede udvidelse indsamlede, omfatter Git-e-mail, brugernavn og offentlig IP-adresse. Det er personoplysninger. Er en medarbejders maskine ramt, skal I derfor vurdere, om der er tale om et brud på persondatasikkerheden efter GDPR, og om det skal anmeldes til Datatilsynet inden for 72 timer.

Svaret afhænger af en konkret vurdering af, hvilke oplysninger der kunne nås, men selve vurderingen skal foretages og dokumenteres, uanset hvad I når frem til.

Er jeres virksomhed omfattet af NIS2, kommer der mere til. NIS2 stiller krav om styring af risici i forsyningskæden og om rapportering af væsentlige hændelser inden for faste frister. En kompromitteret udvidelse, der potentielt gav fjernadgang til udvikleres maskiner, er præcis den slags leverandør- og forsyningskæderisiko, reglerne sigter mod. Vores guide til EU AI Act gennemgår, hvordan de forskellige regelsæt spiller sammen, men på dette punkt er det GDPR og NIS2, ikke AI Act, der er det relevante.

 

Hvad det betyder for danske virksomheder

Sagen er en anledning til at stramme op, ikke til panik. De fleste maskiner slap for den fulde bagdør, og angriberens server er nede. Men hændelsen viser, hvor hurtigt et betroet værktøj kan blive en indgang, og den slags kommer igen. Det kan I gøre nu, i prioriteret rækkefølge:

  • Spørg udviklerteamet, om nogen installerede eller opdaterede Claude Code-udvidelsen i Cursor den 29. oktober, og tjek for nøglen svc-telemetry i authorized_keys på deres maskiner.
  • Er en maskine ramt, så isolér den, kør Cursors oprydningsscript, og overvej at genopbygge den helt. Afinstallation alene er ikke nok.
  • Roter nøgler, tokens og sessioner, der var tilgængelige fra ramte maskiner, og gør det fra et rent system.
  • Indfør en allowlist for udvidelser og MCP-servere i jeres editorer og AI-agenter, og slå automatiske opdateringer fra for det kritiske, så en manipuleret version ikke kommer ind uden et aktivt valg.
  • Giv ikke udviklere administratorrettigheder i det daglige. I denne sag var det netop manglen på administratorrettigheder, der forhindrede, at tunnelen kom op at stå.
  • Overvåg udgående trafik til ukendte porte og nye poster i authorized_keys, så I opdager den slags hurtigere næste gang.
  • Afgør, om hændelsen skal anmeldes efter GDPR og NIS2, og dokumentér vurderingen, uanset udfaldet.

 

Ofte stillede spørgsmål

Er vores maskiner ramt?

Ja, hvis nogen hos jer installerede eller opdaterede udvidelsen i Cursor den 29. oktober mellem cirka 10.27 og 21.35 dansk tid. Tjek efter teksten svc-telemetry i filen authorized_keys i brugerens .ssh-mappe. Findes den, er maskinen ramt. Udviklere med automatiske opdateringer slået til er særligt udsatte, fordi den manipulerede version kan være kommet ind uden et aktivt valg.

Er det nok at afinstallere udvidelsen?

Nej. Den skadelige kode efterlader selvstændige scripts, der bliver ved med at køre, selv efter udvidelsen er fjernet. I skal fjerne den uautoriserede SSH-nøgle, persistensmekanismerne og eventuelle kørende tunnelprocesser, og I bør vurdere, om maskinen skal genopbygges. Cursor har lagt oprydningsscripts frem til macOS og Windows.

Hvilken version var falsk, og hvad er sikkert nu?

Udvidelsen hed Anthropic.claude-code og blev udsendt under det rigtige udgiver-id. The Hacker News peger på version 2.1.313, og Cursor nævner i sin opdaterede meddelelse også 2.1.312. Anthropic har siden udgivet en ren version 2.1.314 til Open VSX og Microsofts VS Code-markedsplads. Den malware-inficerede kode var ikke lavet af Anthropic.

Skal vi anmelde det efter GDPR eller NIS2?

De indsamlede data omfattede Git-e-mail, brugernavn og offentlig IP-adresse, som er personoplysninger. Er en maskine ramt, skal I vurdere, om der er sket et brud på persondatasikkerheden efter GDPR, og om det skal anmeldes til Datatilsynet inden for 72 timer. Er I omfattet af NIS2, gælder desuden krav om styring af forsyningskæderisici og hændelsesrapportering.

Ramte det også andre markedspladser end Cursor?

Nej. Ifølge både Cursor og uafhængige forskere nåede den manipulerede udgave kun ud via Cursors egen markedsplads. Der er ingen tegn på, at Open VSX eller Microsofts officielle VS Code-markedsplads var ramt, og tidligere meldinger om Open VSX er siden korrigeret. Installerede I udvidelsen de steder, er I efter det oplyste ikke berørt.

 

Læren handler om forventning. Et navn, I kender, i en markedsplads, I bruger, er ikke i sig selv en garanti for, at koden er den, I tror. AI-kodeværktøjerne er blevet kritisk infrastruktur hos mange danske virksomheder på under et år, og de fortjener samme styring som resten af jeres software. Den dag, et angreb som dette rammer en maskine med administratorrettigheder eller en bredere kanal end én markedsplads, er det jeres forberedelse, ikke angriberens held, der afgør, hvor galt det går.

Fortsæt læsningen