
Wprowadzenie do problemu
Incydent związany ze złośliwie zmodyfikowanym rozszerzeniem Claude Code dla środowiska Cursor pokazuje, jak poważnym zagrożeniem stają się ataki na łańcuch dostaw oprogramowania w narzędziach deweloperskich. W tym przypadku zagrożenie nie pochodziło z podejrzanego zewnętrznego źródła, lecz z marketplace’u rozszerzeń, który dla wielu użytkowników stanowi domyślny i zaufany kanał aktualizacji.
Rozszerzenia do IDE mają zwykle szeroki dostęp do plików projektu, konfiguracji użytkownika, zmiennych środowiskowych i połączeń sieciowych. To sprawia, że ich kompromitacja może skutkować nie tylko wyciekiem danych, ale również próbą ustanowienia trwałego dostępu do stacji roboczej programisty.
W skrócie
- Złośliwe wersje rozszerzenia Anthropic.claude-code 2.1.312 i 2.1.313 były dostępne w marketplace Cursor przez około 11 godzin.
- Problem dotyczył użytkowników macOS i Windows, którzy zainstalowali lub zaktualizowali rozszerzenie 29 października 2026 roku.
- Malware zbierał dane o hoście, próbował dodać klucz SSH napastnika do pliku authorized_keys, aktywować usługę SSH oraz utworzyć reverse tunnel.
- Złośliwy kod stosował mechanizmy persistence zależne od platformy, w tym LaunchAgent na macOS i zadania harmonogramu na Windows.
- Nawet jeśli pełna kompromitacja nie powiodła się na większości hostów, zagrożenie dla środowisk deweloperskich pozostaje istotne.
Kontekst i historia incydentu
Ataki na łańcuch dostaw nie są nowym zjawiskiem, ale coraz częściej obejmują komponenty wykorzystywane bezpośrednio przez programistów. Rozszerzenia IDE to szczególnie atrakcyjny cel, ponieważ funkcjonują blisko kodu źródłowego, sekretów dostępowych i infrastruktury developerskiej.
W analizowanym przypadku kluczowy problem dotyczył kompromitacji kanału publikacji w marketplace Cursor. Dla użytkownika końcowego aktualizacja wyglądała jak legalny pakiet pochodzący z zaufanego źródła, co znacząco utrudnia wykrycie zagrożenia na wczesnym etapie. To właśnie dlatego tego typu incydenty są szczególnie niebezpieczne operacyjnie.
Zdarzenie nabiera dodatkowego znaczenia w kontekście rozwoju środowisk AI-assisted development. Nowoczesne IDE z funkcjami agentowymi zwiększają powierzchnię ataku, ponieważ łączą możliwość wykonywania działań lokalnych z dostępem do szerokiego kontekstu pracy użytkownika.
Analiza techniczna
Złośliwa modyfikacja rozszerzenia była stosunkowo niewielka, ale skutecznie rozszerzała jego możliwości o działania typowe dla malware. Po załadowaniu pakietu uruchamiany był dodatkowy loader, który nie wymagał aktywnej interakcji użytkownika z asystentem AI.
Na pierwszym etapie malware zbierał informacje rozpoznawcze o systemie. Obejmowały one między innymi nazwę hosta, nazwę użytkownika, system operacyjny, architekturę, ścieżkę katalogu domowego, zestaw zmiennych środowiskowych, katalog roboczy, skonfigurowany adres e-mail Git oraz publiczny adres IP.
Następnie złośliwy kod podejmował próbę ustanowienia trwałego dostępu. Kluczowym elementem było dopisanie kontrolowanego przez napastnika klucza publicznego SSH do pliku authorized_keys. Równolegle malware próbował aktywować lokalną usługę SSH i zestawić odwrócony tunel do infrastruktury operatora ataku.
Mechanizmy persistence różniły się zależnie od systemu operacyjnego. Na macOS wykorzystywano LaunchAgent, natomiast na Windows tworzono zadanie harmonogramu oraz dodatkowy mechanizm startowy pełniący funkcję awaryjną. Skrypty miały regularnie ponawiać próby zestawienia połączenia, co oznacza, że samo usunięcie rozszerzenia nie gwarantowało pełnego usunięcia skutków infekcji.
Warto jednak podkreślić, że część najbardziej niebezpiecznego łańcucha ataku mogła zawieść na wielu hostach. Uruchomienie lokalnej usługi SSH zwykle wymaga podwyższonych uprawnień, a błędy w implementacji dodatkowo ograniczały skuteczność ataku. Nie zmienia to faktu, że już sama próba modyfikacji authorized_keys, eksfiltracja danych rozpoznawczych i pozostawienie artefaktów persistence stanowiły realne zagrożenie.
Konsekwencje i ryzyko
Najpoważniejszym skutkiem incydentu jest ryzyko kompromitacji stacji roboczych deweloperów. Tego typu hosty często zapewniają dostęp do repozytoriów kodu, tokenów Git, sekretów chmurowych, systemów CI/CD, sesji SSO i kluczy SSH. Nawet częściowy sukces atakującego może otworzyć drogę do dalszej eskalacji działań wewnątrz organizacji.
Drugim istotnym problemem jest zaufanie do marketplace’ów i automatycznych aktualizacji. Jeśli organizacja dopuszcza dowolne instalowanie rozszerzeń przez użytkowników bez walidacji lub kontroli reputacyjnej, pojedyncza kompromitacja może szybko objąć dużą liczbę endpointów.
Nie można też ignorować ryzyka trwałości kompromitacji. Obcy klucz SSH, zadanie harmonogramu, LaunchAgent lub skrypt startowy mogą pozostać w systemie nawet po usunięciu samego rozszerzenia. Oznacza to konieczność pełnej analizy śledczej, a nie wyłącznie prostego odinstalowania komponentu.
Rekomendacje
Organizacje korzystające z Cursor powinny w pierwszej kolejności ustalić, czy 29 października 2026 roku doszło do instalacji lub aktualizacji rozszerzenia Anthropic.claude-code w wersjach 2.1.312 lub 2.1.313 na systemach macOS albo Windows. Weryfikacja powinna objąć logi EDR, historię instalacji rozszerzeń, ruch sieciowy i lokalne artefakty na endpointach.
- Sprawdzić plik authorized_keys pod kątem nieautoryzowanych wpisów, w tym komentarzy wskazujących na aktywność malware.
- Poszukać podejrzanych zadań harmonogramu, artefaktów LaunchAgent i skryptów startupowych.
- Zweryfikować procesy SSH lub autossh uruchamiane z parametrami typowymi dla reverse tunnel.
- Odizolować hosty z potwierdzonymi śladami kompromitacji i przeprowadzić pełną remediację.
- Przeprowadzić rotację poświadczeń dostępnych z poziomu potencjalnie zainfekowanych stacji.
W dłuższej perspektywie warto wdrożyć allowlisty rozszerzeń, ograniczyć samodzielną instalację dodatków, skanować pobierane komponenty i monitorować integralność pakietów w marketplace’ach. Dodatkowo należy traktować środowiska AI IDE jako element infrastruktury podwyższonego ryzyka, wymagający ścisłej kontroli uprawnień i lepszego monitoringu.
Podsumowanie
Trojanizowane rozszerzenie Claude Code dla Cursor to kolejny sygnał ostrzegawczy dla zespołów bezpieczeństwa i organizacji rozwijających oprogramowanie z użyciem narzędzi AI. Kompromitacja marketplace’u doprowadziła do dystrybucji pakietu, który próbował ustanowić backdoor SSH, utrwalić się w systemie i zebrać informacje o hoście.
Nawet jeśli pełny scenariusz przejęcia nie zadziałał na większości maszyn, incydent pokazuje, że ekosystem rozszerzeń do IDE staje się krytycznym elementem powierzchni ataku. Dla obrońców kluczowe są szybkie wykrycie śladów infekcji, remediacja endpointów oraz przegląd modelu zaufania wobec narzędzi i dodatków używanych w procesie developmentu.
Źródła
- https://www.darkreading.com/cyberattacks-data-breaches/devs-trojanized-claude-code-extension-cursor
- https://cursor.com/blog/claude-code-extension-security-notice
- https://forever.security/blog/embrace-hacking-5-ai-assistants-embedded-browsers
- https://www.darkreading.com/application-security/flaws-claude-code-developer-machines-risk