React2Shell: fala ataków z dostarczaniem koparek, backdoorów i implantów. Co muszą wiedzieć zespoły bezpieczeństwa? - Security Bez Tabu

React2Shell: fala ataków z dostarczaniem koparek, backdoorów i implantów. Co muszą wiedzieć zespoły bezpieczeństwa?

Wprowadzenie do problemu / definicja luki

React2Shell (CVE-2025-55182) to krytyczna (CVSS 10.0) luka RCE w React Server Components (RSC), umożliwiająca zdalne wykonanie kodu bez uwierzytelnienia za pomocą specjalnie spreparowanych żądań HTTP. Dotyka ekosystemu React 19 i frameworków korzystających z RSC (m.in. Next.js, React Router, Waku, RedwoodSDK). Producent wydał poprawki dla React 19.0.1/19.1.2/19.2.1.

W skrócie

  • Eksploatacja trwa na szeroką skalę – pierwsze ataki odnotowano niemal natychmiast po ujawnieniu. W katalogu CISA KEV luka widnieje jako aktywnie wykorzystywana, a termin remediacji dla agencji federalnych przyspieszono do 12 grudnia 2025 r.
  • Łańcuchy ataku są zróżnicowane: kryptokoparki, backdoory Linuksa (np. BPFDoor, PeerBlight), tunele (CowTunnel), implanty post-eksploatacyjne (ZinFoq, Sliver), webshelle i narzędzia C2 (Cobalt Strike).
  • Aktorzy: aktywność powiązana z grupami z Chin (IAB i operatorzy botnetów) oraz ślady TTP zbieżne z kampaniami DPRK (m.in. wątki EtherRAT/EtherHiding).

Kontekst / historia / powiązania

Skala ekspozycji jest wysoka – React i Next.js są powszechnie wdrażane w środowiskach enterprise. Shadowserver raportował wzrost z ~77 tys. do >165 tys. adresów IP i setek tysięcy domen z podatnym kodem. Jednocześnie AWS i inni dostawcy obserwowali gwałtowne przyspieszenie ataków po publikacji PoC i wskazują, że operatorzy z Chin byli wśród pierwszych, którzy rozpoczęli eksploatację.

Analiza techniczna / szczegóły luki

Rdzeniem błędu jest niebezpieczna deserializacja w implementacji protokołu Flight wykorzystywanego przez RSC. W praktyce wystarczy sfałszowane żądanie HTTP (często POST) z „ładunkiem” RSC, aby doprowadzić do wykonania uprzywilejowanego kodu JS po stronie serwera. Luka jest niska-złożona, bez interakcji użytkownika, a skuteczność exploitów w testach zbliża się do 100%. W podatności uczestniczą m.in. pakiety react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack w wersjach 19.0/19.1/19.2.

Istotny niuans: nawet jeśli aplikacja nie używa jawnie Server Functions, ale wspiera RSC, wciąż może być atakowalna. Wiele domyślnych konfiguracji (np. świeży Next.js „create-next-app”) jest podatnych bez zmian w kodzie.

Praktyczne konsekwencje / ryzyko

Dostawcy wykryli bogaty wachlarz ładunków po udanej eksploatacji:

  • Kryptokoparki (masowe próby monetyzacji zasobów kontenerów/K8s).
  • Kradzież poświadczeń chmurowych (AWS/Git/CI), następnie ruch boczny w chmurze.
  • Backdoory Linuksa: m.in. BPFDoor (wcześniej łączony z Red Menshen/Earth Bluecrow), PeerBlight (nowy, opisany przez Huntress).
  • Tunele/reverse proxy: CowTunnel; implanty: ZinFoq, SNOWLIGHT, VShell; narzędzia C2: Cobalt Strike, Sliver; webshelle udające manager plików React.

Dodatkowo, Palo Alto/Unit 42 opisuje żywiołowe „rekonesanse po wejściu” oparte na prostych skryptach bash/Base64 (uname/id/hosts/resolv.conf) i szybkie pobieranie payloadów via curl/wget. To ułatwia automatyzację kampanii masowych i podszywanie się pod skany.

Rekomendacje operacyjne / co zrobić teraz

Patch & hardening (priorytet 0):

  • Zaktualizuj React do 19.0.1 / 19.1.2 / 19.2.1 oraz odpowiednie wersje Next.js zgodnie z tabelą Unit 42. Zrób to w środowiskach prod/stage/dev; zrób rebuild i redeploy.
  • Jeśli nie możesz patchować natychmiast, zablokuj/ogranicz dostęp do punktów RSC (WAF/NGFW, allowlisty, blokada metod/ścieżek) i segmentuj workloady. (Unit 42/Wiz potwierdzają, że ataki często celują w Next.js i kontenery/Kubernetes).

Detekcje i myślenie TTP:

  • Szukaj anomalii HTTP do endpointów RSC (nienaturalne payloady, wysyp błędów deserializacji).
  • Telemetria procesów/sieci: curl/wget uruchamiane przez procesy aplikacyjne, łańcuchy bash -c z base64, nietypowe wywołania powłok z katalogów aplikacji.
  • Artefakty poeksploatacyjne: droppery (np. sex.sh), webshelle „React File Manager”, wskaźniki C2 znane z kampanii (np. Sliver/Cobalt Strike beacony).
  • Malware/implanty: sygnatury/IOCe dla BPFDoor, NoodleRAT, PeerBlight, CowTunnel, ZinFoq, SNOWLIGHT/VShell; oraz koparek/kube-miners. (Huntress/Unit 42/SecurityWeek).

IR & chmura:

  • Rotacja secrets (AWS/GCP/Azure), tokenów CI/CD, kluczy SSH wykorzystywanych przez aplikacje RSC.
  • Przegląd Kubernetes: DaemonSety podejrzanych koparek, nieautoryzowane CronJoby, pods z eskalowanymi uprawnieniami. (Wiz obserwuje nacisk na workloady kontenerowe).

Zgodność i wymogi:

  • Traktuj CVE-2025-55182 jako KEV – jeśli podlegasz wytycznym CISA, respektuj deadline 12 grudnia 2025 r.

Różnice / porównania z innymi przypadkami

W odróżnieniu od klasycznych fal kryptokoparek w Node/Express, tutaj atakujący mają „wejście” na poziomie RSC/Flight, co omija część typowych filtrów i uderza w warstwę SSR. Z drugiej strony spektrum widać też kampanie IAB (initial access broker) – szybkie „otwarcie drzwi”, zrzut poświadczeń chmurowych i sprzedaż dostępu dalej (SNOWLIGHT/VShell). Jednocześnie pojawia się nowe malware (PeerBlight/CowTunnel/ZinFoq), co sugeruje, że React2Shell stał się testową rampą dla świeżych narzędzi ofensywnych.

Podsumowanie / kluczowe wnioski

  • Reaguj jak na incydent 0-day/KEV – patch, izolacja ekspozycji RSC, wzmożona telemetria.
  • Nie lekceważ „commodity”: koparki często są pierwszym śladem, ale w tle bywa IAB/C2 i długoterminowe osadzenie.
  • Chmura i K8s to dziś główny wektor monetizacji i pivotu – ustaw priorytety monitoringu właśnie tam.

Źródła / bibliografia

  1. SecurityWeek – przegląd kampanii, typy malware, statystyki Shadowserver, KEV/terminy CISA: „Wide Range of Malware Delivered in React2Shell Attacks” (11 grudnia 2025). (SecurityWeek)
  2. Unit 42 (Palo Alto Networks) – analiza techniczna, TTP, lista obserwowanych implantów i wersje łatek: „Exploitation of Critical Vulnerability in React Server Components” (akt. 10 grudnia 2025). (Unit 42)
  3. Huntress – szczegóły nowych rodzin (PeerBlight, CowTunnel, ZinFoq) i łańcuchów dystrybucji: „PeerBlight Linux Backdoor Exploits React2Shell”. (Huntress)
  4. Wiz – nacisk ataków na Next.js/Kubernetes, kradzież sekretów i Sliver: „React2Shell Deep Dive: CVE-2025-55182 Exploit Mechanics”. (wiz.io)
  5. CISA KEV – status „exploited in the wild” i wymogi remediacji: Known Exploited Vulnerabilities Catalog. (CISA)