22 kwietnia złośliwa wersja interfejsu wiersza poleceń Bitwarden pojawiła się w npm pod oficjalną nazwą pakietu @bitwarden/cli@2026.4.0. Przez 93 minuty każdy, kto pobrał CLI przez npm, otrzymywał podstawioną wersję z backdoorem zamiast legalnego narzędzia.
Bitwarden wykrył kompromitację, usunął pakiet i wydał oświadczenie, w którym stwierdził, że nie znalazł dowodów na to, że atakujący uzyskali dostęp do danych skarbca użytkowników końcowych lub skompromitowali systemy produkcyjne.
Firma badań bezpieczeństwa JFrog przeanalizowała złośliwy ładunek i stwierdziła, że nie był on szczególnie zainteresowany skarbcami Bitwarden. Celował w tokeny GitHub, tokeny npm, klucze SSH, historię powłoki, poświadczenia AWS, poświadczenia GCP, poświadczenia Azure, sekrety GitHub Actions oraz pliki konfiguracyjne narzędzi AI.
Są to poświadczenia, które regulują sposób, w jaki zespoły budują, wdrażają i uzyskują dostęp do swojej infrastruktury.
| Docelowy sekret / typ danych | Gdzie zazwyczaj się znajduje | Dlaczego ma znaczenie operacyjne |
|---|---|---|
| Tokeny GitHub | Laptopy deweloperów, lokalna konfiguracja, środowiska CI | Mogą umożliwić dostęp do repozytoriów, nadużycie przepływów pracy, listowanie sekretów i ruch boczny przez automatyzację |
| Tokeny npm | Lokalna konfiguracja, środowiska wydań | Mogą być używane do publikowania złośliwych pakietów lub zmiany przepływów wydań |
| Klucze SSH | Maszyny deweloperów, hosty budowania | Mogą otworzyć dostęp do serwerów, wewnętrznych repozytoriów i infrastruktury |
| Historia powłoki | Maszyny lokalne | Może ujawnić wklejone sekrety, polecenia, wewnętrzne nazwy hostów i szczegóły przepływu pracy |
| Poświadczenia AWS | Lokalne pliki konfiguracyjne, zmienne środowiskowe, sekrety CI | Mogą ujawnić obciążenia chmurowe, pamięć masową i systemy wdrożeniowe |
| Poświadczenia GCP | Lokalne pliki konfiguracyjne, zmienne środowiskowe, sekrety CI | Mogą ujawnić projekty chmurowe, usługi i potoki automatyzacji |
| Poświadczenia Azure | Lokalne pliki konfiguracyjne, zmienne środowiskowe, sekrety CI | Mogą ujawnić infrastrukturę chmurową, systemy tożsamości i ścieżki wdrożeniowe |
| Sekrety GitHub Actions | Środowiska CI/CD | Mogą zapewnić dostęp do automatyzacji, wyników budowania, wdrożeń i dalszych sekretów |
| Narzędzia AI / pliki konfiguracyjne | Katalogi projektów, lokalne środowiska deweloperskie | Mogą ujawnić klucze API, wewnętrzne punkty końcowe, ustawienia modeli i powiązane poświadczenia |
Bitwarden obsługuje ponad 50 000 firm i 10 milionów użytkowników, a jego własna dokumentacja opisuje CLI jako „potężny, w pełni funkcjonalny" sposób dostępu do skarbca i zarządzania nim, w tym w zautomatyzowanych przepływach pracy uwierzytelnianych przy użyciu zmiennych środowiskowych.
Bitwarden wymienia npm jako najprostszą i preferowaną metodę instalacji dla użytkowników już zaznajomionych z rejestrem. Ta kombinacja użycia automatyzacji, instalacji na maszynach deweloperskich i oficjalnej dystrybucji npm umieszcza CLI dokładnie tam, gdzie zwykle przechowywane są wysokowartościowe sekrety infrastrukturalne.
Analiza JFrog pokazuje, że złośliwy pakiet przeprogramował zarówno hook preinstall, jak i punkt wejścia binarnego bw do loadera, który pobierał środowisko uruchomieniowe Bun i uruchamiał zaciemniony ładunek. Kompromitacja jest wyzwalana w czasie instalacji i w czasie wykonywania.
Organizacja mogła uruchamiać CLI z backdoorem bez dotykania jakichkolwiek przechowywanych haseł, podczas gdy złośliwe oprogramowanie systematycznie zbierało poświadczenia zarządzające jej potokami CI, kontami chmurowymi i automatyzacją wdrożeń.
Firma bezpieczeństwa Socket twierdzi, że atak wydaje się wykorzystywać skompromitowaną GitHub Action w potoku CI/CD Bitwarden, co jest zgodne ze wzorcem śledzonym przez badaczy Checkmarx.
Bitwarden potwierdził, że incydent jest powiązany z szerszą kampanią łańcucha dostaw Checkmarx.
Npm zbudował swój model zaufanego publikowania, aby rozwiązać dokładnie tę klasę ryzyka.
Zastępując długotrwałe tokeny publikowania npm uwierzytelnianiem CI/CD opartym na OIDC, system usuwa jedną z najczęstszych ścieżek, z których korzystają atakujący, aby przejąć wydania rejestru, a npm zaleca zaufane publikowanie i traktuje to jako znaczący krok naprzód.
Trudniejszą powierzchnią jest sama logika wydań, czyli przepływy pracy i akcje, które wywołują krok publikowania. Własna dokumentacja npm zaleca kontrole wykraczające poza OIDC, takie jak środowiska wdrożeniowe z wymaganiami ręcznego zatwierdzania, reguły ochrony tagów i ograniczenia gałęzi.
| Warstwa w łańcuchu zaufania | Co ma gwarantować | Co może pójść nie tak |
|---|---|---|
| Repozytorium źródłowe | Zamierzony kod bazowy istnieje w oczekiwanym repozytorium | Atakujący mogą nigdy nie potrzebować bezpośrednio zmieniać głównego kodu bazowego |
| Przepływ pracy CI/CD | Automatyzuje budowanie i wydanie z repozytorium | W przypadku kompromitacji może wyprodukować i opublikować złośliwy artefakt |
| GitHub Actions / logika wydań | Wykonuje kroki budowania i publikowania oprogramowania | Zatruty action lub nadużyty przepływ pracy może zamienić legalną ścieżkę wydania w złośliwą |
| Zaufane publikowanie OIDC | Zastępuje długotrwałe tokeny rejestru krótkotrwałym uwierzytelnianiem opartym na tożsamości | Potwierdza, że autoryzowany przepływ pracy opublikował pakiet, nie że sam przepływ pracy był bezpieczny |
| Oficjalna trasa pakietu npm | Dystrybuuje oprogramowanie pod oczekiwaną nazwą pakietu | Użytkownicy mogą nadal otrzymywać złośliwe oprogramowanie, jeśli oficjalna ścieżka publikowania zostanie skompromitowana |
| Maszyna deweloperska / runner CI | Pobiera oficjalny pakiet | Złośliwe oprogramowanie w czasie instalacji lub wykonywania może zbierać lokalne, chmurowe i automatyzacyjne sekrety |
Ustawienia środowiska GitHub pozwalają organizacjom wymagać akceptacji recenzentów przed wdrożeniem przepływu pracy. Framework SLSA idzie dalej, prosząc konsumentów o weryfikację, czy proweniencja odpowiada oczekiwanym parametrom, takim jak poprawne repozytorium, gałąź, tag, przepływ pracy i konfiguracja budowania.
Incydent Bitwarden pokazuje, że trudniejszy problem tkwi w warstwie przepływu pracy. Jeśli atakujący może wykorzystać sam przepływ pracy wydania, odznaka „oficjalny" nadal towarzyszy złośliwemu pakietowi.
Zaufane publikowanie przenosi ciężar zaufania w górę, do integralności przepływów pracy i akcji, które je wywołują — warstwy, którą organizacje w dużej mierze pozostawiły niezbadaną.
Dla zespołów deweloperskich i infrastrukturalnych, skompromitowany przepływ pracy wydania naraża potoki CI, infrastrukturę automatyzacji i poświadczenia nimi zarządzające.
Analiza JFrog pokazuje, że gdy złośliwe oprogramowanie uzyskało token GitHub, mogło zweryfikować token, wyliczyć zapisywalne repozytoria, wylistować sekrety GitHub Actions, utworzyć gałąź, zatwierdzić przepływ pracy, poczekać na jego wykonanie, pobrać wynikowe artefakty, a następnie wyczyścić ślady.
Uzyskanie tokenu tworzy zautomatyzowany łańcuch, który przekształca jedno skradzione poświadczenie w trwały dostęp do całej infrastruktury automatyzacji organizacji.
Laptop dewelopera, który zainstaluje zatruty oficjalny pakiet, staje się mostem między lokalnym magazynem poświadczeń hosta a dostępem do GitHub i wszystkim, do czego dany token GitHub może dotrzeć.
Incydent Bybit jest bliską strukturalną analogią. Skompromitowana stacja robocza dewelopera pozwoliła atakującym zatruć zaufany interfejs upstream, który następnie dotarł do procesu operacyjnego ofiary.
Różnica polega na tym, że Bybit dotyczył zmodyfikowanego interfejsu webowego Safe, podczas gdy Bitwarden dotyczył zmodyfikowanego oficjalnego pakietu npm.
W środowiskach kryptowalutowych, fintech lub powierniczych ta ścieżka może prowadzić od magazynu poświadczeń do sygnatariuszy wydań, dostępu do chmury i systemów wdrożeniowych bez dotykania jakiegokolwiek wpisu skarbca.
W ciągu 60 dni Checkmarx ujawnił skompromitowane przepływy pracy GitHub Actions i wtyczki OpenVSX, a Cloud Security Alliance ostrzegł, że kampania TeamPCP aktywnie kompromituje projekty open-source i komponenty automatyzacji CI/CD.
JFrog udokumentował, jak skompromitowana GitHub Action Trivy wyeksfiltrował token publikowania LiteLLM i umożliwił złośliwe wydania PyPI, a Axios ujawnił, że dwie złośliwe wersje npm były w obiegu przez około trzy godziny przez skompromitowane konto opiekuna.
Sonatype naliczył ponad 454 600 nowych złośliwych pakietów tylko w 2025 roku, co łącznie daje ponad 1,2 miliona. Bitwarden dołącza do łańcucha incydentów potwierdzających, że przepływy pracy wydań i rejestry pakietów są główną powierzchnią ataku.
| Data / okres | Incydent | Skompromitowany punkt zaufania | Dlaczego ma znaczenie |
|---|---|---|---|
| 23 mar. 2026 | Checkmarx ujawnił skompromitowane przepływy pracy GitHub Actions i wtyczki OpenVSX | Przepływy pracy GitHub Actions, dystrybucja narzędzi deweloperskich | Pokazuje atakujących celujących w automatyzację upstream i zaufane kanały narzędziowe |
| W tym samym oknie kampanii | Łańcuch Trivy / LiteLLM udokumentowany przez JFrog | Skompromitowana GitHub Action prowadząca do kradzieży tokenu i złośliwych wydań PyPI | Pokazuje, jak jeden zatruty komponent automatyzacji może kaskadowo prowadzić do nadużycia publikacji pakietów |
| 31 mar. 2026 | Złośliwe wersje npm Axios | Skompromitowane konto opiekuna | Pokazuje, że oficjalne nazwy pakietów mogą stać się wektorami ataku poprzez kompromitację na poziomie konta |
| 22 kwi. 2026 | Złośliwe wydanie npm Bitwarden CLI | Oficjalna ścieżka dystrybucji npm dla narzędzia bezpieczeństwa | Pokazuje, że zaufany pakiet może ujawnić sekrety infrastrukturalne bez dotykania zawartości skarbca |
| Łącznie 2025 | Liczba złośliwego oprogramowania Sonatype | Ekosystem pakietów open-source ogólnie | Wskazuje na skalę aktywności złośliwych pakietów i dlaczego zaufanie do rejestrów jest teraz ryzykiem strategicznym |
Dokładna przyczyna źródłowa nie jest jeszcze publiczna, ponieważ Bitwarden potwierdził powiązanie z kampanią Checkmarx, ale nie opublikował szczegółowego zestawienia tego, jak atakujący uzyskał dostęp do potoku wydań.
Najsilniejszym rezultatem dla obrońców jest to, że ten incydent przyspiesza redefinicję tego, co oznacza „oficjalny".
Dziś zaufane publikowanie dołącza dane proweniencji do każdego wydanego pakietu, potwierdzając tym samym tożsamość wydawcy w rejestrze. SLSA explicite dokumentuje wyższy standard dla weryfikatorów sprawdzających, czy proweniencja odpowiada oczekiwanemu repozytorium, gałęzi, przepływowi pracy i parametrom budowania.
Jeśli ten standard stanie się domyślnym zachowaniem konsumentów, „oficjalny" zacznie oznaczać „zbudowany przez właściwy przepływ pracy z właściwymi ograniczeniami", a atakujący, który skompromituje action, ale nie może spełnić wszystkich ograniczeń proweniencji, produkuje pakiet, który zautomatyzowani konsumenci odrzucają zanim zostanie zainstalowany.
Bardziej prawdopodobna krótkoterminowa ścieżka biegnie w przeciwnym kierunku. Atakujący wykazali w co najmniej 4 incydentach w ciągu 60 dni, że przepływy pracy wydań, zależności akcji i poświadczenia sąsiadujące z opiekunami przynoszą wysokowartościowe wyniki przy stosunkowo niskim nakładzie pracy.
Każdy kolejny incydent dodaje kolejną udokumentowaną technikę do publicznego podręcznika kompromitacji akcji, kradzieży tokenów z wyjść CI, przejęcia kont opiekunów i nadużycia zaufanych ścieżek publikowania.
Jeśli weryfikacja proweniencji nie stanie się domyślnym zachowaniem konsumentów, a nie opcjonalną warstwą polityki, oficjalne nazwy pakietów będą cieszyć się większym zaufaniem, niż ich procesy wydania mogą uzasadnić.
Wpis Przez 93 minuty instalowanie „oficjalnego" CLI Bitwarden zamieniało laptopy w platformy startowe do przejmowania kont GitHub pojawił się najpierw w CryptoSlate.
