Badacze bezpieczeństwa odkryli złośliwą kampanię w npm obejmującą 101 pakietów nadużywających otwartoźródłowego projektu Baileys dla WhatsApp, aby po cichu manipulować uwierzytelnionymi kontami WhatsApp programistów.
Kampania, śledzona pod nazwą PhantomSub, zgromadziła około 490 tys. pobrań, w tym około 116 tys. w ciągu 30 dni poprzedzających ujawnienie informacji 28 września 2026 r. Badacze ustalili, że pakiety mogą sprawiać, iż konta WhatsApp ofiar zaczynają obserwować kanały kontrolowane przez atakujących bez ich zgody, co pomaga zawyżać liczbę obserwujących i promować treści związane z oszustwami.
Kampania jest szczególnie godna uwagi, ponieważ nie zachowuje się jak typowe złośliwe oprogramowanie kradnące dane uwierzytelniające.
Zamiast tego atakujący nadużywają zaufania, jakim programiści darzą zależności open source oraz pakiety wyglądające na prawdziwe forki Baileys.
Czym jest kampania PhantomSub?
PhantomSub to zbiór złośliwych pakietów npm zidentyfikowanych przez badaczy z OX Security.
Pakiety bazują na Baileys lub go imitują. To nieoficjalna implementacja API WhatsApp Web, której programiści używają do tworzenia botów automatyzujących i aplikacji współpracujących z kontami WhatsApp.
Programiści zwykle wykorzystują projekty oparte na Baileys w takich zastosowaniach jak:
- automatyzacja WhatsApp
- boty obsługi klienta
- zarządzanie wiadomościami
- automatyzacja czatów
- zbieranie danych i inne integracje
Złośliwe pakiety modyfikują tę funkcjonalność, wstrzykując dodatkowy kod, który po cichu zapisuje uwierzytelnione konto WhatsApp do obserwowania kanałów kontrolowanych przez atakujących.
Programista może więc zainstalować zależność, która wygląda na zwykłą bibliotekę do automatyzacji WhatsApp, i nieświadomie pozwolić pakietowi na wykonywanie działań, które nigdy nie były częścią zamierzonej funkcjonalności aplikacji.
Jak poważna jest ta kampania?
Skala kampanii jest znacząca.
OX Security zidentyfikował 101 pakietów powiązanych z PhantomSub. Łącznie miały one około 490 tys. pobrań, z czego około 116 tys. w ciągu ostatnich 30 dni.
W chwili publikacji raportu OX Security z 28 września 16 pakietów zostało usuniętych z npm, a wiele pozostałych nadal było dostępnych.
Kampania nie ogranicza się też do jednej nazwy pakietu.
Badacze znaleźli wiele rodzin pakietów, wydawców i wariantów nazewnictwa, dlatego to samo zachowanie może być kontynuowane nawet po zidentyfikowaniu i usunięciu pojedynczych pakietów.
To ważna cecha kampanii opartych na złośliwych pakietach:
Usunięcie jednego pakietu niekoniecznie oznacza usunięcie kampanii.
Jak działa PhantomSub?
Podstawowy przebieg ataku jest stosunkowo prosty:
Programista instaluje złośliwy pakiet Baileys
↓
Aplikacja uwierzytelnia konto WhatsApp
↓
Wykonuje się złośliwy kod w czasie działania
↓
Pobierane są identyfikatory docelowych kanałów
↓
Konto WhatsApp zaczyna obserwować kanały kontrolowane przez atakujących
↓
Kanały zyskują sztucznie zawyżoną liczbę obserwujących
W niektórych wariantach lista kanałów jest pobierana zdalnie.
W innych identyfikatory docelowych kanałów są zapisane bezpośrednio w pakiecie.
Trzeci wariant wykorzystuje zakodowane lub zaciemnione informacje o kanałach.
Podejście ze zdalną listą jest szczególnie interesujące, ponieważ pozwala operatorowi zmieniać cele bez konieczności publikowania nowego pakietu npm.
Pakiet może pobrać zaktualizowaną listę kanałów w czasie działania i zastosować nowe cele w już zainstalowanych kopiach.
Dlaczego kampania nadużywa Baileys?
Atak wykorzystuje uprawnioną relację zaufania.
Gdy programiści używają pakietu opartego na Baileys, świadomie przyznają aplikacji dostęp do uwierzytelnionej sesji WhatsApp.
Oczekuje się, że ten dostęp będzie wykorzystywany do uprawnionej funkcjonalności komunikacyjnej aplikacji.
Złośliwy fork może nadużyć tego samego dostępu do wykonywania dodatkowych działań.
To zasadniczo odróżnia ten atak od tradycyjnego złośliwego pakietu, który po prostu uruchamia program pobierający podczas instalacji.
W kampanii PhantomSub złośliwe zachowanie jest zintegrowane z funkcjonalnością aplikacji działającą w czasie wykonania.
Dzięki temu pakiet może wydawać się mniej podejrzany podczas podstawowych kontroli instalacji.
Trzy różne warianty PhantomSub
OX Security zidentyfikował trzy główne podejścia stosowane przez złośliwe pakiety.
1️⃣ Zdalne listy kanałów
W pierwszym wariancie pakiet pobiera identyfikatory kanałów z zewnętrznej infrastruktury, w tym z plików hostowanych na GitHubie.
OX Security zidentyfikował 19 pakietów stosujących to podejście.
Dla atakującego zaletą jest elastyczność.
Listę celów można zmieniać zdalnie bez publikowania kolejnej wersji w npm.
Oznacza to, że pakiet już zainstalowany w środowisku programistycznym może później otrzymać nowe informacje o celach.
2️⃣ Identyfikatory kanałów zapisane jawnym tekstem
Drugi wariant zawiera identyfikatory docelowych kanałów bezpośrednio w kodzie źródłowym pakietu.
OX Security zidentyfikował 60 pakietów wykorzystujących tę technikę.
Złośliwa logika niekoniecznie znajduje się w pliku, który wyraźnie budzi podejrzenia.
Badacze znaleźli przykłady, w których kod został wstawiony do istniejących modułów Baileys lub umieszczony w plikach, których nazwy i funkcjonalność mogą sprawiać, że dodatkowe zachowanie jest mniej widoczne podczas pobieżnego przeglądu.
Na przykład złośliwą logikę subskrypcji znaleziono w modułach związanych z obsługą wiadomości i protokołem Signal.
3️⃣ Zakodowane informacje o kanałach
Trzeci wariant wykorzystuje zakodowane informacje o kanałach, w tym dane zakodowane w Base64.
OX Security zidentyfikował 14 pakietów stosujących to podejście.
Jeden z przykładów używa zakodowanych informacji o zaproszeniu, które są rozwiązywane w czasie działania, zanim konto WhatsApp zacznie obserwować docelowy kanał.
Nie jest to wyrafinowana kryptografia, ale utrudnia wykrycie kampanii za pomocą prostego przeszukiwania kodu źródłowego pod kątem znanych identyfikatorów kanałów.
Co dzieje się z dotkniętymi kontami WhatsApp?
Bezpośrednim skutkiem są przede wszystkim nieautoryzowane subskrypcje kanałów WhatsApp, a nie tradycyjna kradzież danych.
OX Security poinformował, że kampania wydaje się zaprojektowana tak, aby zawyżać liczbę obserwujących kanałów kontrolowanych przez atakujących.
Niektóre z zidentyfikowanych kanałów promowały treści dotyczące sprzedaży kont w mediach społecznościowych, kont do gier, usług związanych z botami oraz innych potencjalnie oszukańczych lub niechcianych działań.
W niektórych przypadkach złośliwy kod dodatkowo wycisza kanały po rozpoczęciu ich obserwowania.
Takie zachowanie może zmniejszyć prawdopodobieństwo, że programista od razu zauważy nieautoryzowaną subskrypcję.
Jednocześnie dodatkowy obserwujący może sprawić, że kanał będzie wyglądał na bardziej wiarygodny w oczach innych użytkowników.
Tworzy to pętlę sprzężenia zwrotnego:
Złośliwy pakiet → nieautoryzowany obserwujący → zawyżone wskaźniki kanału → większa postrzegana wiarygodność
PhantomSub nie jest przede wszystkim złodziejem danych uwierzytelniających
Jedną z istotnych cech tej kampanii jest to, czego badacze nie zaobserwowali.
OX Security stwierdził, że pakiety nie pasowały do typowego wzorca złośliwych zależności, których celem jest kradzież tokenów API, kryptowalut lub danych uwierzytelniających.
Zamiast tego kampania nadużywa uwierzytelnionej sesji WhatsApp do wykonywania nieautoryzowanych działań.
Ta różnica ma znaczenie dla wykrywania.
Zespoły bezpieczeństwa, które w pakietach npm szukają głównie:
- kradzieży danych uwierzytelniających
- kradzieży kryptowalut
- reverse shelli
- programów pobierających (downloaderów)
- zaciemnionego złośliwego oprogramowania
- destrukcyjnych ładunków
mogą przeoczyć pakiet, którego złośliwe zachowanie sprowadza się do nieautoryzowanego wywołania API.
Sama złośliwa akcja może być sygnałem.
Dlaczego złośliwe pakiety npm trudno wykryć?
Pakiety npm stanowią istotne ryzyko dla łańcucha dostaw oprogramowania, ponieważ programiści często polegają na dużej liczbie komponentów firm trzecich.
Sam npm wskazuje publikowanie złośliwych pakietów, typosquatting, dependency confusion i modyfikowanie istniejących pakietów jako ważne kategorie zagrożeń. npm podaje, że skanuje pakiety pod kątem znanej złośliwej zawartości i uruchamia je, aby wykryć potencjalnie złośliwe zachowanie, a jego zespoły bezpieczeństwa badają zgłoszone złośliwe treści.
PhantomSub pokazuje jeszcze jedno wyzwanie:
Pakiet nie musi wyglądać jak złośliwe oprogramowanie, aby działać złośliwie.
Programista może zobaczyć:
- znajomą nazwę projektu
- API zgodne z Baileys
- normalną funkcjonalność WhatsApp
- brak oczywistego skryptu instalacyjnego
- brak ładunku kradnącego dane uwierzytelniające
A mimo to pakiet może zawierać nieautoryzowane zachowanie w czasie działania.
To sprawia, że analiza składu oprogramowania (SCA) i monitorowanie behawioralne stają się coraz ważniejsze.
Co powinni zrobić programiści?
Programiści korzystający z Baileys lub innych bibliotek do automatyzacji WhatsApp powinni dokładnie przejrzeć swoje drzewo zależności.
✅ Zaudytuj forki Baileys
Zidentyfikuj każdą zależność wywodzącą się z Baileys w środowiskach programistycznych, systemach CI/CD i aplikacjach produkcyjnych.
Nie zakładaj, że pakiet jest godny zaufania tylko dlatego, że jego nazwa zawiera baileys.
Kampania PhantomSub wykorzystywała wiele nazw pakietów i kont wydawców.
✅ Sprawdź pochodzenie pakietów
Sprawdź:
- wydawcę pakietu
- adres URL repozytorium
- historię opiekunów
- historię wydań
- zmiany w zależnościach
- nieoczekiwane forki
- wiek pakietu
- wzorce pobrań
- różnice względem oryginalnego projektu Baileys
Pakiet, który wiernie imituje legalny projekt, zasługuje na dodatkową uwagę.
✅ Monitoruj aktywność WhatsApp w czasie działania
Nieoczekiwane subskrypcje kanałów WhatsApp mogą być cennym sygnałem wykrycia.
Jeśli aplikacja została zaprojektowana do wysyłania wiadomości, a nagle zaczyna obserwować kanały bez odpowiadającej temu logiki aplikacji, zbadaj, która zależność za to odpowiada.
✅ Monitoruj połączenia wychodzące
Niektóre warianty PhantomSub pobierają listy kanałów z zewnętrznych źródeł w czasie działania.
Zespoły bezpieczeństwa powinny zatem sprawdzać nieoczekiwane połączenia wychodzące z procesów automatyzujących WhatsApp, zwłaszcza połączenia z repozytoriami lub infrastrukturą niepotrzebną do zamierzonej funkcjonalności aplikacji.
✅ Przypinaj i przeglądaj zależności
Tam, gdzie to właściwe, używaj plików blokujących wersje (lockfile) i kontrolowanych procesów aktualizacji zależności.
Bezrefleksyjne instalowanie najnowszej wersji nieznanego pakietu zwiększa ekspozycję na ryzyko w łańcuchu dostaw oprogramowania.
Zależności należy przeglądać, zanim trafią do środowisk produkcyjnych, zwłaszcza gdy mają dostęp do uwierzytelnionych usług lub wrażliwych kont.
Co zrobić, jeśli potencjalnie złośliwy pakiet został już zainstalowany?
Jeśli firma odkryje, że jeden ze zidentyfikowanych pakietów został zainstalowany lub uruchomiony, dochodzenie powinno wykraczać poza samo odinstalowanie zależności.
Zespoły bezpieczeństwa powinny ustalić:
- Które systemy zainstalowały pakiet
- Jakiej wersji pakietu użyto
- Kiedy został zainstalowany
- Czy pakiet został uruchomiony
- Które konta WhatsApp były uwierzytelnione
- Czy zaczęto obserwować nieautoryzowane kanały
- Z jaką zewnętrzną infrastrukturą kontaktował się pakiet
- Czy wraz z nim zainstalowano inne podejrzane zależności
Jeśli dotknięta sesja WhatsApp była używana przez aplikację produkcyjną, przejrzyj ją i ustanów ponownie zgodnie z procedurami bezpieczeństwa aplikacji.
Celem jest ustalenie, czy incydent ograniczył się do nieautoryzowanej aktywności związanej z kanałami, czy też wystąpiło dodatkowe złośliwe zachowanie.
Wcześniejsze ostrzeżenia dotyczące forków Baileys
PhantomSub nie jest odosobnionym odkryciem.
Badacze bezpieczeństwa zgłaszali złośliwe forki Baileys już w sierpniu i wrześniu 2026 r.
Xygeni wcześniej przeanalizował pakiet @dappaoffc/baileys-mod, wykrywając wstrzyknięcie kodu w czasie działania, które po cichu zapisywało uwierzytelnione sesje botów WhatsApp do kanałów informacyjnych kontrolowanych przez atakujących. Ładunek pobierał informacje o celach dynamicznie z GitHuba i aktywował się w czasie działania, zamiast polegać na oczywistym skrypcie instalacyjnym.
Wrześniowe badania OX Security następnie rozszerzyły znany zakres do 101 pakietów.
Ta ewolucja pokazuje, jak kampanie złośliwych zależności mogą się rozwijać przez wiele nazw pakietów i implementacji, zachowując ten sam podstawowy cel.
Szersza lekcja z zakresu cyberbezpieczeństwa
PhantomSub pokazuje, że ataki na łańcuch dostaw oprogramowania nie muszą kraść danych uwierzytelniających ani wdrażać ransomware, aby stworzyć problem bezpieczeństwa.
Złośliwa zależność może nadużywać legalnych uprawnień do wykonywania działań, których programista nigdy nie zamierzał.
Dlatego rozróżnienie między:
„Pakiet został zainstalowany pomyślnie”
a
„Pakiet zachowuje się zgodnie z oczekiwaniami”
jest niezwykle ważne.
Tradycyjne zarządzanie zależnościami koncentruje się głównie na wersjonowaniu, lukach w zabezpieczeniach i zgodności licencyjnej.
Te kontrole nadal są ważne, ale niekoniecznie odpowiadają na inne pytanie:
Co ta zależność faktycznie robi w czasie działania?
W przypadku pakietów współpracujących z uwierzytelnionymi usługami to pytanie staje się jeszcze ważniejsze.
Podsumowanie
Kampania PhantomSub pokazuje, jak atakujący mogą zamienić łańcuch dostaw oprogramowania w pośrednią drogę wpływania na usługi zewnętrzne.
101 zidentyfikowanych pakietów npm nie musiało kraść haseł ani wdrażać konwencjonalnego złośliwego oprogramowania. Nadużywając legalnych możliwości Baileys w WhatsApp, mogły po cichu manipulować uwierzytelnionymi kontami i zwiększać zasięg kanałów kontrolowanych przez atakujących.
Około 490 tys. pobrań powiązanych ze zidentyfikowanymi pakietami pokazuje potencjalny zasięg złośliwych zależności, nawet gdy ich zachowanie jest stosunkowo wąskie.
Bezpieczeństwo łańcucha dostaw oprogramowania musi oceniać nie tylko to, co pakiet zawiera, ale także jakie uprawnienia otrzymuje i co z nimi robi.
Zależność, która wygląda jak legalny fork, nadal może wprowadzić nieautoryzowane zachowanie do zaufanej aplikacji.