bee-js 13.3.0 w npm kradła klucze portfeli kryptowalut
Wersja 13.3.0 biblioteki @ethersphere/bee-js dla Swarm trafiła do npm oficjalnym procesem wydawniczym i od razu po instalacji próbowała wykraść klucze portfeli.

Wystarczyło zainstalować bibliotekę @ethersphere/bee-js w wersji 13.3.0, żeby złośliwy kod zaczął szukać kluczy portfeli kryptowalut. Firma CodeScoring od 9 listopada uznaje tę wersję biblioteki JavaScript dla rozproszonego magazynu Swarm za złośliwą.
Najdziwniejsze jest to, jak paczka się pojawiła. Nie przez włamanie na konto w npm, lecz oficjalną ścieżką wydawniczą projektu. Na koncie wydań bee-worker do głównego repozytorium trafił bezpośredni commit, potem utworzono release, który uruchomił istniejący workflow GitHub Actions. Według Socket informacje o buildzie w npm wskazywały na oficjalne repozytorium i standardowy proces. Złośliwy kod siedział już w źródłach.
Jak działał złośliwy kod w bee-js 13.3.0?
Atakujący zmienili paczkę tak, by skrypt uruchamiał się automatycznie podczas instalacji. Jeśli wykonywanie takich skryptów było dozwolone, malware startował, zanim ktokolwiek użył biblioteki w aplikacji. W komentarzach w kodzie połączenie z serwerem opisano jako wysyłanie analityki. W rzeczywistości skrypt pobierał stamtąd JavaScript i od razu go uruchamiał z uprawnieniami osoby instalującej pakiet.
Ładunek szukał w danych aplikacji Swarm Desktop zaszyfrowanego klucza portfela i pliku konfiguracyjnego. Jeśli w konfiguracji było hasło do klucza, kradzież tych dwóch plików dawała kontrolę nad portfelem. Malware próbował też utrwalić się w systemie, by zachować dostęp po zakończeniu instalacji.
Na Linuksie i macOS atak szedł dalej: instalowano backdoor do zdalnego wykonywania poleceń. Adres serwera sterującego odczytywał on z inteligentnego kontraktu Ethereum. Operator mógł zmienić ten adres jedną transakcją, bez wydawania nowej wersji malware.
Jak sprawdzić, czy jesteś narażony?
Zainfekowana wersja mogła trafić do projektu pośrednio. Zakresy zależności kilku narzędzi Swarm dopuszczały wersję 13.3.0, więc trzeba sprawdzić faktycznie rozwiązaną wersję w pliku lock. Samo szukanie bezpośredniej zależności w manifeście nie wystarczy.
Zespoły używające bee-js powinny przejrzeć pliki lock, cache pakietów i logi instalacji w CI pod kątem wersji 13.3.0, także wśród zależności tranzytywnych. Jeśli ta wersja była instalowana z dozwolonymi skryptami albo uruchamiano Swarm Desktop w wersji 0.56.2, trzeba zbadać maszynę lub runner CI. W przypadku runnera chodzi o tokeny publikacji pakietów i dostęp do kodu źródłowego.
CodeScoring podaje, że jego polityki blokujące z warunkiem „Zależność jest niebezpieczna” zatrzymują pobieranie tej i innych znanych złośliwych paczek w module CodeScoring.OSA oraz build projektu w module CodeScoring.SCA.
Aplikacje warte uwagi
Wybierz właściwe pola, dodaj je i trafiaj w cel. Łatwa do nauczenia, trudna do opanowania. Za darmo, dla każdego wieku.
Rozmawiaj z partnerem AI; każde zdanie wraca poprawione i wyjaśnione w Twoim języku. 9 języków, od A1 do C2.
Otwieraj komunikaty EDIFACT i X12, każdy segment objaśniony, konwersja do JSON/XML, eksport PDF i Excel. Działa lokalnie, bez wysyłania.
Wybierz dla kogo, okazję i osobowość. Wyszukiwarka czyta opisy produktów lokalnych sklepów i układa to, co pasuje. Za darmo, bez rejestracji.
Więcej z tego dnia
Zobacz wszystkie →
Baza gier UTM: agent Claude Code sam szuka poprawek do crashy

Roskomnadzor wdrożył AI do wykrywania VPN za 2,27 mld rubli

Amazon wydał narzędzie napisane w całości przez agentów AI

