
Co znajdziesz w tym artykule?
Wprowadzenie do problemu / definicja
Krytyczna podatność CVE-2025-55182, określana również jako React2Shell, została wykorzystana w zautomatyzowanej kampanii wymierzonej w publicznie dostępne aplikacje oparte na Next.js. Luka dotyczy mechanizmów związanych z React Server Components oraz obsługą danych w Next.js App Router i może prowadzić do zdalnego wykonania kodu bez uwierzytelnienia. W praktyce daje to atakującym możliwość uruchamiania poleceń po stronie serwera jeszcze przed zalogowaniem użytkownika.
W skrócie
Badacze opisali szeroko zakrojoną operację przypisaną do klastra UAT-10608, w ramach której skompromitowano co najmniej 766 hostów w różnych regionach i środowiskach chmurowych. Atakujący wykorzystywali CVE-2025-55182 do uzyskania początkowego dostępu, a następnie wdrażali wieloetapowe skrypty służące do zbierania i eksfiltracji danych uwierzytelniających oraz sekretów środowiskowych.
Wśród wykradanych informacji znalazły się między innymi poświadczenia baz danych, klucze SSH, tokeny GitHub i GitLab, sekrety AWS, tokeny Kubernetes, klucze API Stripe oraz konfiguracje kontenerów. Skala kampanii pokazuje, że luka bardzo szybko stała się narzędziem do masowej kompromitacji systemów internetowych.
Kontekst / historia
Incydent wpisuje się w szerszy trend szybkiego uzbrajania krytycznych podatności w popularnych frameworkach webowych. Next.js należy do najczęściej wykorzystywanych rozwiązań do budowy nowoczesnych aplikacji server-side i full-stack JavaScript, dlatego każda poważna luka w jego ekosystemie może mieć bardzo szeroki zasięg operacyjny.
Według opublikowanych ustaleń kampania miała charakter masowy i niedyskryminujący. Schemat działania wskazuje na automatyczne skanowanie internetu w poszukiwaniu publicznie dostępnych wdrożeń Next.js, a następnie ich testowanie pod kątem podatności. To podejście dobrze odzwierciedla obecny model działania grup, które przemysłowo wykorzystują nowe luki RCE do szybkiego przejmowania infrastruktury i zbierania sekretów przydatnych w dalszych etapach ataku.
Analiza techniczna
Rdzeniem problemu jest możliwość dostarczenia złośliwego, serializowanego ładunku do endpointu funkcji serwerowej. W podatnych wdrożeniach dane wejściowe są deserializowane bez odpowiedniej walidacji, co umożliwia uruchomienie nieautoryzowanego kodu w procesie Node.js po stronie serwera. Brak wymogu uwierzytelnienia dodatkowo obniża próg wejścia dla napastników.
Po skutecznym wykorzystaniu luki operatorzy wdrażali dropper, który pobierał i uruchamiał pełny zestaw skryptów harvestingowych. Skrypty były wykonywane z katalogów tymczasowych i działały etapowo, zbierając informacje z systemu operacyjnego, środowiska uruchomieniowego oraz warstwy kontenerowej i chmurowej.
- zmienne środowiskowe procesów,
- dane środowiskowe parsowane przez runtime JavaScript,
- klucze prywatne SSH i pliki authorized_keys,
- historię poleceń powłoki,
- tokeny kont serwisowych Kubernetes,
- konfiguracje uruchomionych kontenerów Docker,
- tokeny i klucze API aplikacji,
- tymczasowe poświadczenia ról chmurowych z usług metadanych AWS, GCP i Azure,
- listy uruchomionych procesów i ich parametry.
Zebrane dane były następnie przesyłane do infrastruktury C2 obsługującej panel nazwany NEXUS Listener. Tego typu zaplecze pozwalało operatorom przeglądać przejęte hosty, wyszukiwać konkretne typy sekretów oraz analizować skalę kompromitacji. Z perspektywy obrońców oznacza to dojrzałą i zautomatyzowaną operację, a nie pojedynczy incydent oparty na ręcznym użyciu exploita.
Szczególnie alarmujący jest profil pozyskiwanych danych. Analiza artefaktów wskazuje na zbieranie pełnych connection stringów do baz danych, kluczy dostępowych do usług płatniczych, tokenów platform deweloperskich i AI, sekretów webhooków, poświadczeń do usług mailingowych oraz danych umożliwiających późniejszy ruch boczny w infrastrukturze ofiary.
Konsekwencje / ryzyko
Skutki kompromitacji mogą wykraczać daleko poza pojedynczy serwer aplikacyjny. Przejęcie sekretów środowiskowych otwiera drogę do eskalacji dostępu do baz danych, zasobów chmurowych, repozytoriów kodu, systemów CI/CD oraz zewnętrznych integracji biznesowych. Jeśli na hostach przechowywano aktywne klucze produkcyjne, napastnicy mogli uzyskać realny wpływ na funkcjonowanie organizacji.
- przejęcie kont i usług na podstawie wykradzionych tokenów,
- ruch boczny z użyciem kluczy SSH współdzielonych pomiędzy systemami,
- nadużycie poświadczeń IAM w chmurze do odczytu danych i dalszej ekspansji,
- dostęp do klastrów Kubernetes przez tokeny service account,
- ataki na łańcuch dostaw z użyciem przejętych danych do repozytoriów i rejestrów pakietów,
- nadużycia finansowe przy wykorzystaniu aktywnych kluczy API systemów płatności.
Z punktu widzenia zespołów bezpieczeństwa kluczowe jest to, że samo załatanie luki nie kończy incydentu. Jeżeli wcześniej doszło do kradzieży kluczy, tokenów lub danych uwierzytelniających, organizacja nadal może pozostawać narażona na utrzymanie dostępu przez przeciwnika oraz kolejne etapy ataku.
Rekomendacje
Organizacje korzystające z Next.js powinny potraktować CVE-2025-55182 jako podatność wymagającą natychmiastowej weryfikacji i priorytetowej reakcji. Niezbędne są zarówno działania naprawcze po stronie aplikacji, jak i pełna ocena ewentualnych skutków kompromitacji.
- zidentyfikować wszystkie publicznie dostępne wdrożenia Next.js i sprawdzić ich wersje oraz ekspozycję endpointów funkcji serwerowych,
- zastosować poprawki producenta lub obejścia ograniczające możliwość wywołania podatnych ścieżek deserializacji,
- przeprowadzić threat hunting pod kątem procesów uruchamianych z katalogu /tmp, skryptów wykonywanych przez nohup, anomalii w procesie Node.js oraz podejrzanych połączeń wychodzących,
- traktować wszystkie sekrety obecne na potencjalnie dotkniętych hostach jako skompromitowane i przeprowadzić ich pełną rotację,
- unieważnić oraz wymienić klucze SSH, tokeny GitHub i GitLab, connection stringi baz danych, klucze API usług zewnętrznych i poświadczenia chmurowe,
- wymusić zasadę najmniejszych uprawnień dla ról IAM, kont serwisowych Kubernetes i kont aplikacyjnych,
- w środowiskach AWS wdrożyć IMDSv2 oraz ograniczyć możliwość pobierania metadanych instancji przez nieautoryzowane procesy,
- uruchomić skanowanie sekretów w repozytoriach, pipeline’ach CI/CD i obrazach kontenerowych,
- zweryfikować, czy te same klucze SSH lub tokeny nie są ponownie używane w wielu systemach,
- uzupełnić detekcję o reguły identyfikujące masową enumerację środowiska, odczyt tokenów Kubernetes oraz nietypowy dostęp do plików historii powłoki.
W przypadku podejrzenia naruszenia konieczna jest pełna analiza śledcza hosta oraz przegląd logów aplikacyjnych, systemowych i sieciowych pod kątem prób wykorzystania endpointów React Server Components. Szybkie wdrożenie poprawki bez analizy wtórnych skutków może pozostawić aktywne ścieżki dostępu w środowisku.
Podsumowanie
Kampania wykorzystująca CVE-2025-55182 pokazuje, jak szybko krytyczna luka w popularnym frameworku webowym może zostać przekształcona w zautomatyzowaną operację harvestingową na dużą skalę. Atakujący nie ograniczali się do zdobycia pojedynczego dostępu, lecz koncentrowali się na pozyskaniu szerokiego zestawu sekretów umożliwiających dalszą eksfiltrację, ruch boczny i rozwijanie ataku w infrastrukturze ofiar.
Dla organizacji utrzymujących aplikacje w Next.js najważniejsze są dziś trzy działania: pilne ograniczenie ekspozycji podatnych wdrożeń, pełna rotacja sekretów przy choćby podejrzeniu kompromitacji oraz wdrożenie bardziej restrykcyjnej kontroli uprawnień w środowiskach chmurowych i kontenerowych. Incydent ten potwierdza, że bezpieczeństwo nowoczesnych aplikacji webowych musi obejmować nie tylko warstwę kodu, ale cały ekosystem sekretów, integracji i infrastruktury wykonawczej.
Źródła
- Cisco Talos – UAT-10608: Inside a large-scale automated credential harvesting operation targeting web applications — https://blog.talosintelligence.com/uat-10608-inside-a-large-scale-automated-credential-harvesting-operation-targeting-web-applications/
- The Hacker News – Hackers Exploit CVE-2025-55182 to Breach 766 Next.js Hosts, Steal Credentials — https://thehackernews.com/2026/04/hackers-exploit-cve-2025-55182-to.html