Jedenaście godzin, do 5000 deweloperów i tylna furtka, która w większości nie zadziałała

Ktoś opublikował zmodyfikowaną wersję rozszerzenia Claude Code pod tożsamością wydawniczą Anthropic w sklepie Cursora. Instalowana przez nie tylna furtka była wadliwa, i tylko dlatego ta historia nie jest znacznie gorsza. Nikt nie wyjaśnił, jak ta paczka tam trafiła.

AI Bezpieczeństwo Aktualności 8 min czytania

Eleven Hours, Up to 5,000 Developers, and a Backdoor That Mostly Failed

29 października 2026 roku, mniej więcej między 2:27 a 13:35 czasu pacyficznego, w sklepie Cursor VS Code Extension Marketplace dostępna była złośliwie zmodyfikowana wersja rozszerzenia Claude Code firmy Anthropic. Była tam przez około jedenaście godzin.

Cursor podaje, że incydent dotknął najwyżej 5000 użytkowników. Zmanipulowana wersja nosiła numer 2.1.313, przy czym SecurityWeek wymienia także 2.1.312. Poprawiona wersja to 2.1.314.

Złośliwy kod próbował zainstalować trwałą tylną furtkę SSH na systemach Windows, macOS i Linux, dając napastnikowi długotrwały interaktywny dostęp do maszyn deweloperów.

W większości przypadków nie zadziałał i powód ma znaczenie. Z powodu błędów we własnym kodzie napastnika etap instalacji tylnej furtki kończył się niepowodzeniem poza nietypowymi sytuacjami, w których Cursor został uruchomiony z uprawnieniami administratora.

Słowo „w większości" ma tu jednak znaczenie. Ten błąd nie chroni komputerów Mac, na których włączono już Zdalne logowanie, ani tych, gdzie użytkownik włączy je później. Odinstalowanie rozszerzenia nie czyści też maszyny.

Anthropic zaprzeczył, by doszło do naruszenia jego systemów, a pytanie o to, jak zmanipulowana paczka trafiła do sklepu, pozostaje bez odpowiedzi ze strony obu firm.


Co się wydarzyło

Przebieg ataku

Badacze z firm Phorion i OpenSourceMalware ustalili, że napastnicy umieścili złośliwy loader JavaScript na początku pliku extension.js rozszerzenia, według doniesień około 66 linii kodu, pozostawiając resztę legalnego kodu bez zmian.

Taki projekt jest celowy. Rozszerzenie działało dalej normalnie. Deweloper, który z niego korzystał, niczego by nie zauważył.

Ładunek próbował ustanowić trwałą odwrotną tylną furtkę SSH, przeznaczoną do długotrwałego interaktywnego i zautomatyzowanego dostępu do laptopów i komputerów deweloperów.

Dlaczego to rozszerzenie znaczy więcej niż inne

Rozszerzenie do edytora kodu zajmuje nietypowo cenną pozycję. Jak ujęto to w jednej z analiz, rozszerzenie Claude Code siedzi wewnątrz edytora, blisko kodu źródłowego, terminali, kluczy API i konfiguracji SSH.

Napastnik z trwałym dostępem do stacji dewelopera sięga znacznie dalej niż jedna maszyna. Sięga repozytoriów, poświadczeń chmurowych, tokenów CI/CD i wszystkiego innego, do czego ten deweloper ma dostęp. Opisywana przez nas niedawno kampania GhostAction opierała się dokładnie na takim dostępie, pozyskanym wcześniej przez infostealery.

Błąd, który ograniczył szkody

Komunikat Cursora, powtarzający ocenę firmy Phorion, potwierdził, że paczka zawierała krytyczną wadę. Poza nietypowymi sytuacjami, w których Cursor uruchomiono z uprawnieniami administratora, etap instalacji tylnej furtki kończył się niepowodzeniem.

Nie należy tego czytać jako „nic się nie stało". Help Net Security jasno przedstawił kontrargument: ten błąd nie stanowi obrony na komputerze Mac z już włączonym Zdalnym logowaniem ani na takim, gdzie użytkownik włączy je później. Na tych maszynach tylna furtka jest gotowa do użycia.

Odrębne analizy opisują też próby wyprowadzenia przez ładunek poświadczeń, kluczy SSH i danych systemowych, co jest innym celem niż tylna furtka SSH i niekoniecznie zostałoby zablokowane przez ten sam błąd.

Odinstalowanie nie wystarcza

To najważniejszy praktyczny punkt całego incydentu.

Komunikat Cursora stwierdza, że „Odinstalowanie rozszerzenia może nie wystarczyć", ponieważ ładunek zostawia samodzielne skrypty zapewniające trwałość, które działają dalej niezależnie od rozszerzenia.

Każdy, kto zainstalował wersję 2.1.312 lub 2.1.313, a następnie po prostu usunął rozszerzenie, nie dokończył pracy.

Co zrobił Cursor

Cursor usunął złośliwe rozszerzenie natychmiast po jego wykryciu, a następnie zawiesił działanie całego sklepu, żeby przeprowadzić postępowanie. Zaudytował dostępy, nie znalazł innych złośliwych rozszerzeń, wymienił wszystkie klucze oraz odbudował i ponownie otworzył sklep.

To mocna reakcja. Wyłączenie całego sklepu jest kosztowne i uciążliwe, a zrobienie tego szybko jest właściwym odruchem, gdy nie zna się jeszcze zakresu.

Nierozstrzygnięte pytanie

Oto, czego nie wyjaśniono.

Stanowisko Anthropic, przedstawione w oświadczeniu, brzmi tak, że „złośliwy aktor wykorzystał dostęp do sklepu Cursora, by opublikować zmanipulowane rozszerzenie", a firma nie brała udziału w jego tworzeniu, publikowaniu ani hostowaniu. Cursor ze swojej strony oświadczył, że złośliwa wersja nie została stworzona przez Anthropic i że nie ma dowodów, by ucierpiały inne wersje lub oficjalna dystrybucja.

Żadna z firm nie wyjaśniła, w jaki sposób zmanipulowana paczka trafiła do sklepu pod tożsamością wydawniczą Anthropic. The Register zwrócił na tę lukę uwagę wprost. Jedna z analiz spekuluje o skradzionych poświadczeniach wydawcy, prawdopodobnie zapisanych tokenach dostępu, ale to wniosek, a nie potwierdzone ustalenie.

Mamy więc dwie firmy, z których każda powiedziała, że to nie wydarzyło się po jej stronie, a faktyczny mechanizm pozostaje publicznie nieznany.


Dlaczego to ma znaczenie

Stacje deweloperskie to najcenniejsze punkty końcowe w większości organizacji. Przechowują poświadczenia sięgające produkcji, prawo zapisu do repozytoriów i tokeny chmurowe. Przejęcie jednego dewelopera jest warte więcej niż przejęcie pięćdziesięciu zwykłych użytkowników.

Powierzchnią ataku jest zaufanie do sklepu. Rozszerzenie nosiło nazwę wydawcy Anthropic we własnym sklepie Cursora i aktualizowało się automatycznie. Deweloper nie podejmował żadnej decyzji, nie pobierał nic podejrzanego, nie miał czego sprawdzać. Całym mechanizmem było zaufanie do tożsamości wydawcy.

Jedenaście godzin to krótko, a i tak dotarło do 5000 maszyn. Taka jest przepustowość kanału dystrybucji z automatyczną aktualizacją. Szybkość wykrycia ma tu ogromne znaczenie, a Cursor wypadł pod tym względem dobrze według każdego rozsądnego kryterium.

Mieliśmy szczęście, a szczęście nie jest mechanizmem kontrolnym. Kod napastnika był wadliwy. Gdyby zadziałał, mielibyśmy dziś historię o tysiącach przejętych maszyn deweloperskich z trwałym dostępem SSH, a przez nie o nieznanej liczbie organizacji niżej w łańcuchu.

Rozdrobnienie sklepów tworzy nierówny poziom bezpieczeństwa. Warunki Visual Studio Marketplace Microsoftu ograniczają go do produktów tej firmy, więc forki VS Code, takie jak Cursor i Windsurf, polegają na Open VSX albo własnych sklepach. To rozdrobnienie sprawia, że bezpieczeństwo rozszerzeń zależy dziś od tego, który edytor wybrałeś.


Kogo to dotyczy

  • Użytkowników Cursora, którzy 29 października zainstalowali lub automatycznie zaktualizowali rozszerzenie Claude Code do wersji 2.1.312 lub 2.1.313, czyli do 5000 osób.

  • Spośród nich tych, którzy pracują na macOS z włączonym zdalnym logowaniem, bo dla nich błąd napastnika nie stanowił żadnej ochrony.

  • Organizacji zatrudniających tych deweloperów, przez poświadczenia i dostępy do repozytoriów znajdujące się na zajętych maszynach.

  • Użytkowników innych forków VS Code korzystających ze sklepów firm trzecich, jako kategorii, a nie przez ten konkretny incydent.

  • Nie dotyczy: użytkowników oficjalnych kanałów dystrybucji Anthropic oraz użytkowników VS Code korzystających ze sklepu Microsoftu, gdzie nie zgłoszono złośliwej wersji.


Co zrobić

Jeśli używasz Cursora

  1. Sprawdź, którą wersję rozszerzenia Claude Code masz zainstalowaną. Jeśli to 2.1.312 lub 2.1.313, potraktuj maszynę jako potencjalnie skompromitowaną.

  2. Zaktualizuj do wersji 2.1.314 lub nowszej.

  3. Nie poprzestawaj na odinstalowaniu. Ładunek zostawia samodzielne skrypty, które przeżywają usunięcie rozszerzenia.

  4. Sprawdź konkretnie nieautoryzowany dostęp SSH. Przejrzyj plik ~/.ssh/authorized_keys pod kątem kluczy, których nie dodawałeś, sprawdź konfigurację demona SSH, a na macOS ustal, czy zdalne logowanie nie zostało włączone bez Twojej wiedzy.

  5. Poszukaj nieoczekiwanych zadań zaplanowanych, agentów uruchomieniowych lub wpisów cron utworzonych około 29 października.

  6. Jeśli coś znajdziesz, postaw maszynę od nowa. Stacja deweloperska z trwałą tylną furtką to nie jest zadanie do posprzątania.

Wymień poświadczenia, zakładając, że zostały odczytane

  1. Wymień klucze SSH, klucze API, poświadczenia chmurowe i osobiste tokeny dostępu obecne na tej maszynie. Analizy wskazują, że ładunek celował również w poświadczenia i klucze SSH, czego błąd w tylnej furtce niekoniecznie by zablokował.

  2. Unieważnij sesje, a nie tylko zmień hasła, bo wydane wcześniej tokeny działają dalej.

  3. Przejrzyj aktywność w repozytoriach i CI/CD z tej maszyny od 29 października.

Strukturalnie

  1. Zinwentaryzuj, jakich rozszerzeń używają Twoi deweloperzy i z jakiego sklepu. Większość organizacji nie ma tu żadnej widoczności.

  2. Rozważ wyłączenie automatycznej aktualizacji rozszerzeń w edytorach, gdzie jest to wykonalne, godząc się na kompromis z opóźnionymi poprawkami bezpieczeństwa.

  3. Traktuj stacje deweloperskie jako systemy uprzywilejowane w monitoringu, a nie jako zwykłe laptopy użytkowników.

  4. Obserwuj procesy uruchamiane przez rozszerzenia edytora, bo to sygnał behawioralny generowany przez tę klasę ataków.


Podsumowanie

Zmanipulowane rozszerzenie z nazwą zaufanego wydawcy leżało w oficjalnym sklepie przez jedenaście godzin, zaktualizowało się automatycznie na maksymalnie 5000 maszyn deweloperskich i próbowało zainstalować trwałą tylną furtkę SSH. W większości nie zadziałało, bo napastnik popełnił błędy.

Lekcja: sklepy z rozszerzeniami to kanał automatycznego uruchamiania kodu wymierzony wprost w Twoje najbardziej uprzywilejowane stacje, a prawie nikt nim nie zarządza. Organizacje, które starannie weryfikują każde oprogramowanie trafiające na serwer, pozwalają deweloperowi zainstalować dowolne rozszerzenie widoczne w sklepie jego edytora, od wydawcy, którego nigdy nie oceniały, aktualizujące się po cichu. Decyzję o zaufaniu podjęto raz, przy instalacji, a potem delegowano ją na stałe.

Druga lekcja jest mniej wygodna i warto powiedzieć ją wprost. O wyniku zadecydowała nieudolność napastnika, a nie czyjekolwiek zabezpieczenia. Działający ładunek dałby tysiące maszyn deweloperskich z tylną furtką, a droga stamtąd do repozytoriów i kont chmurowych ich pracodawców jest krótka. Traktowanie tego jako incydentu, z którym dobrze sobie poradzono, jest w połowie słuszne. Poradzono sobie dobrze po wykryciu. Nie zapobieżono mu.

Dwa pytania warte odpowiedzi w tym tygodniu: jakie rozszerzenia są zainstalowane w Twoim zespole deweloperskim i skąd pochodzą oraz czy zauważyłbyś, gdyby jedno z nich uruchomiło demona SSH?

Blog

Bezpieczeństwo 8 min czytania

Zero-day był zbędny: druga fala ataków na chłodnictwo europejskich supermarketów

Trzy tygodnie po tym, jak setki francuskich supermarketów straciły łańcuch chłodniczy, to samo wydarzyło się w dziesięciu innych krajach. Metoda się nie zmieniła, bo nie musiała. Sterowniki wystawione do internetu, przestarzałe oprogramowanie i domyślne hasła wystarczyły już za pierwszym razem.

Bezpieczeństwo 8 min czytania

Zarobili 20 milionów na danych kierowców. Zapłacą 220 milionów.

General Motors zapisał miliony kierowców do programu oceniającego ich hamowanie i przekraczanie prędkości, a następnie sprzedawał te dane brokerom, którzy odsprzedawali je ubezpieczycielom. Ponad 370 000 kierowców dowiedziało się za pośrednictwem aplikacji GM, że nie są zarejestrowani.