Claude Code ujawniał Twój e-mail. Co zrobić?Czytaj →
News

Cursor: backdoor w rozszerzeniu Claude Code

Przez 11 godzin sklep Cursora oferował wersję 2.1.313 rozszerzenia Claude Code z backdoorem SSH. Jak w 2 minuty sprawdzić komputer i co zmienić.

Ciemna karta z rzędami szarych wierszy kodu i limonkowym pasem na samej górze, z którego wysuwa się limonkowy klucz

Cursor potwierdził, że w czwartek 29 października 2026 jego sklep z rozszerzeniami przez ponad 11 godzin oferował zmodyfikowaną wersję 2.1.313 rozszerzenia Claude Code, która próbuje zainstalować na komputerze backdoor SSH, czyli ukryty zdalny dostęp. Według Cursora dotknęło to co najwyżej 5000 osób, a ta wersja nie powstała w Anthropic. Sprawa dotyczy Cię, jeśli w tym oknie (od 10:27 do 21:35 czasu polskiego) zainstalowałeś lub zaktualizowałeś to rozszerzenie w edytorze Cursor. Plan Claude (Pro, Max) ani klucz API nie mają tu znaczenia. Czy komputer jest zainfekowany, sprawdzisz w dwie minuty, bo złośliwy kod zostawia rozpoznawalny ślad.

Co się stało

Cursor opisał incydent w komunikacie z 29 października. Według niego od około 2:27 do 13:35 czasu pacyficznego w jego sklepie z rozszerzeniami była dostępna zmodyfikowana wersja rozszerzenia Claude Code dla VS Code, oznaczona jako Anthropic.claude-code 2.1.313. Firma usunęła ją zaraz po wykryciu, na pewien czas wyłączyła cały sklep, sprawdziła, czy nie zmodyfikowano innych rozszerzeń, zmieniła własne klucze i odbudowała sklep. Serwer atakujących wyłączono we współpracy z dostawcą hostingu, więc zdalny dostęp i odbiór raportów już nie działają. Anthropic opublikował wydanie 2.1.314 w nocy z 29 na 30 października, więc to ono jest teraz aktualne.

Komunikat Cursora z 29 października 2026: złośliwa wersja 2.1.313 rozszerzenia Anthropic.claude-code, najwyżej 5000 poszkodowanych, okno czasowe i lista działań kodu

Co robi złośliwy kod

Według Cursora i analizy firmy Phorion kod dopisany na początku pliku extension.js robi cztery rzeczy:

  • Zbiera dane: nazwę komputera i użytkownika, system, katalog domowy, adres e-mail z konfiguracji Gita i publiczny adres IP. Do tego nazwy zmiennych środowiskowych zawierających słowa KEY, TOKEN, SECRET, PASS, AWS albo GCP. Same nazwy, bez wartości.
  • Dopisuje klucz atakującego z komentarzem svc-telemetry do pliku ~/.ssh/authorized_keys, próbuje włączyć usługę SSH i otworzyć odwrócony tunel do serwera pod adresem 134.209.82.225.
  • Utrwala się w systemie: na macOS przez agenta uruchamiania com.apple.sysmond, na Windowsie przez zadanie SysMon. Skrypty w tle próbują odnawiać tunel mniej więcej co 60 sekund.
  • Wysyła raport o komputerze i o tym, co się udało, na serwer atakujących.

Według Phorion kod startuje przy samym załadowaniu pliku, jeszcze zanim rozszerzenie zacznie działać, więc nie trzeba było go używać ani logować się do Claude. Dlatego rodzaj planu nie ma znaczenia.

Cursor uspokaja, że włączenie usługi SSH wymaga uprawnień administratora, których rozszerzenie na większości komputerów z macOS i Windows nie ma, więc atakujący zwykle nie mógł się zalogować przez tunel. Phorion dodaje, że na macOS ten krok zawodzi też przez błąd w kodzie, ale jeśli zdalne logowanie SSH było już włączone albo włączysz je później, backdoor jest gotowy do użycia. Klucz, mechanizm utrwalenia i raport zostają w każdym przypadku, a wyłączenie serwera atakujących nie usuwa ich z komputera, więc komputer trzeba wyczyścić także wtedy.

Czego jeszcze nie wiadomo

  • Jak paczka trafiła do sklepu: Cursor nie podał, jak do tego doszło. Według OpenSourceMalware Cursor poinformował badaczy, że rozszerzenie w jego sklepie zostało w jakiś sposób skompromitowane i to stamtąd pochodził złośliwy pakiet.
  • Rola Anthropic: Cursor pisze wprost, że złośliwa wersja nie została stworzona przez Anthropic. Notatki do wydania 2.1.314 zawierają zwykłe poprawki bez wzmianki o incydencie. Wczesne wpisy w mediach społecznościowych mówiły o włamaniu do Anthropic, ale dotychczasowe ustalenia tego nie potwierdzają.
  • Które sklepy: Cursor nie ma dowodów, by dotknięte były inne wersje rozszerzenia albo jego oficjalna dystrybucja. OpenSourceMalware prostuje, że złośliwa była wersja ze sklepu Cursora, a rozszerzenie z Open VSX i z Visual Studio Marketplace oraz pakiet @anthropic-ai/claude-code w npm (Claude Code w terminalu) nie są złośliwe. W obu sklepach lista wersji przeskakuje z 2.1.312 od razu do 2.1.314, a wśród wydań na GitHubie nie ma tagu v2.1.313.

Czy to dotyczy Ciebie

Jak używasz Claude Code Czy to Ciebie dotyczy
Rozszerzenie zainstalowane lub zaktualizowane w Cursorze 29 października od 10:27 do 21:35 Możliwe. Zrób test poniżej
Rozszerzenie w Cursorze zainstalowane w innym czasie Według Cursora nie
VS Code z Visual Studio Marketplace albo edytor korzystający z Open VSX Według OpenSourceMalware nie
Claude Code w terminalu Według Cursora i OpenSourceMalware nie

Sprawdź w dwie minuty

Na macOS otwórz Terminal i wklej komendę ze strony Cursora. Szuka ona klucza atakującego (na Linuksie działa tak samo):

grep -qs svc-telemetry ~/.ssh/authorized_keys && echo "svc-telemetry key found" || echo "No key found; machine not impacted"

Napis „No key found; machine not impacted” oznacza według Cursora, że komputer nie jest dotknięty, a „svc-telemetry key found”, że złośliwa wersja zdążyła się uruchomić. Wynik „found” bierz na serio także po aktualizacji do 2.1.314, bo ta nie cofa tego, co wersja 2.1.313 zdążyła zrobić.

Drugie sprawdzenie szuka plików, dzięki którym kod uruchamia się po restarcie. Jeśli komenda niczego nie wypisze, tych plików nie ma:

ls ~/Library/LaunchAgents/com.apple.sysmond.plist ~/.config/.smt ~/.config/.smtk 2>/dev/null

Trzecie polecenie pokaże wersję rozszerzenia w Cursorze i VS Code, w nazwie folderu (na przykład anthropic.claude-code-2.1.314-darwin-arm64):

ls ~/.cursor/extensions ~/.vscode/extensions 2>/dev/null | grep claude-code

Na Windowsie otwórz PowerShell i wklej komendę Cursora, która sprawdza oba pliki z kluczami:

$files = "$HOME\.ssh\authorized_keys", "C:\ProgramData\ssh\administrators_authorized_keys" | Where-Object { Test-Path $_ }
if ($files -and (Select-String svc-telemetry $files)) { "svc-telemetry key found" } else { "No key found; machine not impacted" }

Na Linuksie kod utrzymuje się według Phorion przez wpis @reboot w crontabie. Wpisz crontab -l i poszukaj .smt.

Co zrobić, jeśli klucz się znalazł

Samo odinstalowanie rozszerzenia nie wystarcza, bo złośliwa wersja zostawia osobne skrypty, które działają dalej. Użyj skryptów czyszczących, które Cursor opublikował na stronie komunikatu.

macOS. Pobierz remediate-macos.sh, zapisz w folderze Pobrane i uruchom jako zwykły użytkownik, bez sudo (z uprawnieniami roota skrypt odmawia pracy):

cd ~/Downloads && bash remediate-macos.sh

Skrypt zatrzymuje tunele, usuwa agenta uruchamiania, pliki .smt i .smtk, zainfekowane rozszerzenie i klucz atakującego. Działa lokalnie i niczego nie wysyła do sieci.

Windows. Zamknij edytory, uruchom PowerShell jako administrator, przejdź do folderu z remediate-windows.ps1 i wpisz:

powershell -ExecutionPolicy Bypass -File .\remediate-windows.ps1

Nie kasuj klucza ręcznie. Według komentarza w skrypcie klucz atakującego bywa dopisany do linii z innym kluczem, więc zwykłe usunięcie linii mogłoby skasować także Twój klucz.

Skrypt kończy pracę komunikatem „done: backdoor removed” albo wypisuje, co zostało. Komunikat o nasłuchiwaniu na porcie 22 znaczy, że usługa SSH była włączona, a tunel mógł ją udostępnić. Cursor radzi też ocenić, czy komputer nie wymaga czystej instalacji systemu, tym bardziej gdy SSH był włączony.

Jakie klucze i hasła zmienić

Cursor każe zmienić poświadczenia i sesje dostępne z zainfekowanego komputera, a zrobić to z czystego urządzenia, bo samo zebranie nazw zmiennych nie wyklucza późniejszego dostępu przez tunel. Zacznij od tych, których nazwy zawierają KEY, TOKEN, SECRET, PASS, AWS lub GCP, bo takie nazwy kod próbował wysłać atakującym:

  • Klucze API do usług AI i chmury, także te z plików .env.
  • Tokeny GitHuba i GitLaba oraz klucze AWS i Google Cloud.
  • Własne klucze SSH zapisane w ~/.ssh.
  • Hasła zapisane w plikach konfiguracyjnych i zmiennych środowiskowych.

Jak unieważniać klucze API u głównych dostawców, opisaliśmy w tekście o wycieku kluczy z OpenCode.

Jeśli klucza nie znalazłeś, komputer nie jest według Cursora dotknięty. Zaktualizuj rozszerzenie do wersji 2.1.314 w panelu rozszerzeń Cursora.

Lekcja: sama nazwa wydawcy nie wystarcza

Rozszerzenie edytora to program z uprawnieniami Twojego konta, który startuje razem z edytorem. Tu pod nazwą wydawcy Anthropic pojawiła się wersja, której Anthropic nie stworzył, więc nazwa w sklepie nie jest gwarancją. Po każdym takim incydencie warto zajrzeć do ~/.ssh/authorized_keys i zostawić w edytorze tylko te rozszerzenia, z których korzystasz. Podobne ryzyko wiąże się z paczkami, które pobierają aplikacje generowane przez AI, o czym pisaliśmy przy okazji skanowania nowych paczek w npm.

Newsletter

Opanuj AI‑coding w 5 minut. W każdy poniedziałek.

Konkretne premiery, analizy cen i jeden trik, który przyspieszy Twoją pracę. Po polsku, bez żargonu, prosto na maila.

Zero spamu · wypisujesz się jednym kliknięciem.