Złośliwe rozszerzenie Claude Code w Cursor instalowało backdoor SSH na stacjach deweloperskich - Security Bez Tabu

Złośliwe rozszerzenie Claude Code w Cursor instalowało backdoor SSH na stacjach deweloperskich

Cybersecurity news

Wprowadzenie do problemu / definicja

Ataki na łańcuch dostaw oprogramowania coraz częściej wykorzystują zaufanie użytkowników do popularnych rozszerzeń, pakietów i marketplace’ów. Najnowszy incydent związany z edytorem Cursor pokazuje, że nawet pozornie legalne rozszerzenie AI dla programistów może zostać użyte do wdrożenia mechanizmów trwałego dostępu. W tym przypadku złośliwie zmodyfikowana wersja rozszerzenia Claude Code próbowała instalować backdoor SSH, zbierać informacje o hoście i utrzymywać komunikację z infrastrukturą atakującego.

W skrócie

Incydent dotyczył złośliwej wersji rozszerzenia Claude Code udostępnionej w marketplace edytora Cursor. Szkodliwy pakiet był dostępny przez około 11 godzin, a skala narażenia mogła objąć nawet kilka tysięcy deweloperów. Malware dodawał klucz SSH kontrolowany przez napastnika, próbował włączyć zdalny dostęp przez SSH, konfigurował mechanizmy persystencji i wysyłał dane rozpoznawcze do serwera C2.

  • Złośliwy kod uruchamiał się już podczas ładowania rozszerzenia.
  • Atak obejmował rozpoznanie systemu, persystencję i próbę zestawienia tunelu zwrotnego.
  • Największe ryzyko dotyczyło stacji deweloperskich z dostępem do repozytoriów, sekretów i środowisk CI/CD.

Kontekst / historia

Zdarzenie miało miejsce 29 października 2026 roku, kiedy w marketplace Cursor opublikowano złośliwie zmodyfikowaną wersję rozszerzenia Claude Code oznaczoną numerem 2.1.313. Rozszerzenie było dostępne od około 2:27 do 13:35 czasu pacyficznego. Cursor to edytor kodu oparty na otwartym modelu Visual Studio Code, oferujący obsługę rozszerzeń zgodnych z ekosystemem VS Code. To właśnie ten model rozszerzalności stał się wektorem dostarczenia malware’u.

Według dostępnych informacji nie była to oficjalnie przygotowana wersja przez Anthropic, lecz pakiet opublikowany pod nazwą legalnego producenta. To rodzi pytania o proces publikacji rozszerzeń, kontrolę integralności artefaktów oraz ochronę tożsamości wydawcy w marketplace. Początkowo pojawiały się spekulacje, że problem mógł dotyczyć także innych kanałów dystrybucji, jednak późniejsze ustalenia wskazały na Cursor jako źródło dystrybucji złośliwej wersji.

Analiza techniczna

Technicznie atak polegał na wstrzyknięciu złośliwego loadera JavaScript na początku pliku extension.js, przy pozostawieniu pozostałej części legalnego rozszerzenia bez większych zmian. Taka metoda utrudnia szybką identyfikację zagrożenia, ponieważ funkcjonalność biznesowa dodatku nadal może działać, a szkodliwy kod uruchamia się równolegle już na etapie ładowania rozszerzenia.

Po instalacji malware wykonywał kilka kluczowych operacji:

  • zbierał dane o systemie i użytkowniku, w tym nazwę hosta, nazwę użytkownika, publiczny adres IP oraz adres e-mail powiązany z Gitem,
  • identyfikował zmienne środowiskowe mogące wskazywać na obecność wrażliwych sekretów,
  • dodawał klucz SSH kontrolowany przez napastnika,
  • próbował uruchomić lub umożliwić dostęp SSH do zainfekowanego systemu,
  • próbował ustanowić reverse tunnel,
  • wdrażał persystencję poprzez LaunchAgent w macOS lub zadanie harmonogramu i skrypt startowy w systemie Windows,
  • okresowo ponawiał próby zestawienia tunelu i raportował status do infrastruktury atakującego.

Istotnym elementem incydentu jest to, że złośliwy kod nie wymagał interakcji użytkownika z funkcjami Claude Code. Wystarczało samo załadowanie rozszerzenia przez edytor, aby uruchomić łańcuch wykonywania. To klasyczny przykład ryzyka związanego z automatycznym uruchamianiem logiki rozszerzeń w kontekście lokalnego środowiska programistycznego.

Analiza wskazuje również na błędy operacyjne po stronie napastnika. W systemach macOS malware próbował sprawdzić stan funkcji Remote Login przy użyciu polecenia wymagającego podwyższonych uprawnień, co mogło uniemożliwiać prawidłowe rozpoznanie stanu usługi. Z kolei w systemach Windows próba instalacji i uruchomienia OpenSSH Server była realizowana w sposób niespójny z typową konfiguracją tego systemu, co mogło powodować niepowodzenie aktywacji usługi. W praktyce oznacza to, że backdoor nie musiał być w pełni funkcjonalny na każdej stacji, ale persystencja, modyfikacja konfiguracji i eksfiltracja danych rozpoznawczych nadal stanowiły realne zagrożenie.

Konsekwencje / ryzyko

Najpoważniejszą konsekwencją tego typu incydentu jest możliwość uzyskania trwałego, zdalnego dostępu do stacji deweloperskiej. Środowiska programistyczne są szczególnie atrakcyjne dla atakujących, ponieważ często zawierają wrażliwe dane i poświadczenia umożliwiające dalszą eskalację ataku.

  • tokeny dostępu do repozytoriów,
  • klucze API do usług chmurowych,
  • dane logowania do pipeline’ów CI/CD,
  • dostęp do prywatnych projektów i kodu źródłowego,
  • poświadczenia do systemów testowych i produkcyjnych.

Nawet jeśli mechanizm tunelowania SSH nie zadziałał poprawnie na części hostów, napastnik nadal mógł pozyskać dane rozpoznawcze przydatne do kolejnych etapów ataku. Informacje o użytkowniku, adresie IP, konfiguracji środowiska oraz obecności zmiennych środowiskowych powiązanych z sekretami mogą znacząco ułatwić profilowanie ofiary i dobór kolejnych technik kompromitacji.

Dodatkowe ryzyko wynika z charakteru ataku supply chain. Użytkownicy instalujący rozszerzenie z zaufanego marketplace’u zwykle zakładają, że pakiet przeszedł minimalną weryfikację bezpieczeństwa. Jeśli ten model zaufania zostaje przełamany, konsekwencje wykraczają poza pojedynczą infekcję i dotyczą całego procesu zarządzania rozszerzeniami, kontroli publikacji oraz monitorowania integralności komponentów zewnętrznych.

Rekomendacje

Organizacje wykorzystujące Cursor, VS Code lub inne rozszerzalne środowiska developerskie powinny potraktować ten incydent jako sygnał do przeglądu polityk bezpieczeństwa stacji roboczych i narzędzi programistycznych.

Z perspektywy operacyjnej zalecane są następujące działania:

  • zidentyfikować hosty, na których zainstalowano wskazaną wersję rozszerzenia w oknie ekspozycji,
  • odizolować potencjalnie dotknięte stacje od sieci do czasu zakończenia analizy,
  • sprawdzić obecność nieautoryzowanych kluczy SSH, w szczególności nowych wpisów w authorized_keys,
  • zweryfikować mechanizmy persystencji w systemie, takie jak LaunchAgents, zadania harmonogramu oraz skrypty startowe,
  • przeanalizować historię połączeń wychodzących i prób tunelowania,
  • zrotować wszystkie sekrety dostępne z poziomu potencjalnie naruszonej stacji, w tym tokeny Git, klucze API, poświadczenia chmurowe i sesje użytkownika,
  • przeprowadzić hunting pod kątem nietypowych procesów uruchamianych przez edytor lub rozszerzenia,
  • odbudować zaufane środowisko deweloperskie z bezpiecznego źródła, jeśli istnieje podejrzenie trwałej kompromitacji.

W dłuższej perspektywie warto wdrożyć także kontrole prewencyjne:

  • ograniczenie możliwości instalacji rozszerzeń wyłącznie do zatwierdzonych list,
  • monitorowanie integralności dodatków i sum kontrolnych artefaktów,
  • sandboxing lub separację środowisk developerskich od zasobów produkcyjnych,
  • minimalizację uprawnień lokalnych użytkowników,
  • skanowanie stacji roboczych pod kątem nieautoryzowanych zmian w konfiguracji SSH,
  • centralne zarządzanie sekretami zamiast przechowywania ich w zmiennych środowiskowych i plikach lokalnych.

Podsumowanie

Incydent ze złośliwym rozszerzeniem Claude Code w Cursor to kolejny przykład, jak duże ryzyko dla organizacji niosą kompromitacje elementów łańcucha dostaw oprogramowania. Atakujący wykorzystali zaufanie do legalnie wyglądającego rozszerzenia, aby uruchomić kod służący do rozpoznania systemu, instalacji persystencji i próby wdrożenia tylnego wejścia SSH. Nawet jeśli błędy w malware ograniczyły skuteczność pełnego przejęcia części hostów, sama możliwość wykonania kodu i ekspozycji danych środowiskowych czyni ten incydent istotnym z punktu widzenia bezpieczeństwa deweloperów, repozytoriów oraz procesów CI/CD.

Źródła

  1. Malicious Claude Code extension on Cursor planted SSH backdoors — https://www.bleepingcomputer.com/news/security/malicious-claude-code-extension-on-cursor-planted-ssh-backdoors/