React2Shell (CVE-2025-55182): krytyczna luka w React Server Components aktywnie wykorzystywana do backdoorów w Linuksie - Security Bez Tabu

React2Shell (CVE-2025-55182): krytyczna luka w React Server Components aktywnie wykorzystywana do backdoorów w Linuksie

Wprowadzenie do problemu / definicja luki

React2Shell to nienadzorowana (pre-auth) luka RCE o maksymalnym poziomie krytyczności CVSS 10.0 w React Server Components (RSC). Błąd dotyczy sposobu dekodowania ładunków kierowanych do React Server Functions w protokole Flight, co umożliwia zdalne wykonanie kodu na serwerze przy pomocy pojedynczego, specjalnie sformatowanego żądania HTTP. Poprawki wydano dla gałęzi 19.x (19.0.1, 19.1.2, 19.2.1).

W skrócie

  • Status: aktywnie wykorzystywana na szeroką skalę (dodana do CISA KEV).
  • Zasięg: aplikacje używające RSC (React 19.x; także projekty oparte na App Router w Next.js).
  • Technika ataku: nadużycie deserializacji/parsowania obiektów w endpoincie funkcji serwerowych (Flight).
  • Skutki: wdrażanie backdoorów i implantów linuksowych, m.in. KSwapDoor i ZnDoor; kampanie przypisywane wielu aktorom państwowym.
  • Działania zalecane: natychmiastowy update do wersji załatanych, blokady WAF, reguły detekcyjne/telemetria, przegląd serwerów RSC pod kątem artefaktów po eksploatacji.

Kontekst / historia / powiązania

Luka została odpowiedzialnie zgłoszona 29 listopada 2025 r., a 3 grudnia 2025 r. zespół React opublikował oficjalny komunikat i poprawki. W kolejnych dniach badacze i dostawcy chmury potwierdzili masowe próby eksploatacji w godzinach od publikacji – w tym przez grupy o powiązaniach z Chinami. CISA dodała CVE do Known Exploited Vulnerabilities (KEV), co potwierdza realne ataki w środowiskach produkcyjnych.

Analiza techniczna / szczegóły luki

  • Wektor: publiczny endpoint React Server Functions (część RSC) przyjmujący strumienie/ramki Flight.
  • Przyczyna: niebezpieczne parsowanie/„deserializacja” referencji obiektów podczas dekodowania ładunku – możliwe jest wstrzyknięcie konstrukcji, które prowadzą do wykonania arbitralnego kodu po stronie serwera.
  • Zasięg wersji: React RSC 19.0.0, 19.1.0, 19.1.1, 19.2.0 (i ekosystemy korzystające z RSC, np. Next.js App Router).
  • Naprawa: React 19.0.1 / 19.1.2 / 19.2.1 – zaostrzone dekodowanie i walidacja wejścia po stronie RSC/Flight.
  • Identyfikator: CVE-2025-55182 (wpis NVD/CVE).
    Powyższe zostało opisane w oficjalnym advisory React i rekordzie CVE/NVD.

Praktyczne konsekwencje / ryzyko

  • Backdoory na Linuksa: badacze odnotowali wdrożenia m.in. KSwapDoor oraz ZnDoor jako ładunki post-eksploatacyjne po skutecznym RCE. Celem jest utrzymanie trwałości i zdalna kontrola.
  • Wielu aktorów, szybka mobilizacja: telemetryka dostawców (AWS, Google, Unit 42) wskazuje na różnorodnych sprawców, w tym grupy z łańcuchami TTP charakterystycznymi dla aktorów państwowych (Chiny) oraz przestępczość zorganizowaną.
  • Skala i łatwość nadużycia: atak jest pre-auth i możliwy w domyślnych konfiguracjach komponentów RSC, co znacząco zwiększa powierzchnię ataku w środowiskach internetowych.
  • Obserwacje od Blue Teamów: zespoły broniące raportują również próby wdrażania koparek kryptowalut, tuneli proxy oraz dodatkowych implantów. Microsoft publikuje konkretne wskazówki detekcyjne i mapowanie do MITRE ATT&CK.

Rekomendacje operacyjne / co zrobić teraz

  1. Patch ASAP: zaktualizuj RSC do 19.0.1 / 19.1.2 / 19.2.1 (oraz odpowiednie wersje frameworków korzystających z RSC). Traktuj jako pożar produkcyjny.
  2. Hardening i ekspozycja: ogranicz publiczny dostęp do endpointów RSC/Server Functions; wymuś uwierzytelnienie, rate-limit i walidację treści.
  3. WAF/IDS/EDR: wdroż reguły blokujące znane wzorce żądań Flight/„object reference”; użyj publikowanych sygnatur/analiz od wiodących dostawców (Microsoft/AWS/Google).
  4. Łańcuch reakcji po incydencie:
    • przeszukaj logi HTTP pod kątem podejrzanych ramek Flight i nietypowych kodów odpowiedzi;
    • sprawdź procesy potomne serwera RSC (np. nieautoryzowane powłoki, curl/wget, binaria w /tmp);
    • IOC/artefakty: nazwy/ścieżki i C2 powiązane z KSwapDoor/ZnDoor lub innymi obserwowanymi implantami;
    • jeśli wystąpiła eksfiltracja poświadczeń/tokenów – przeprowadź rotację sekretów i unieważnienie sesji. (mapowanie: ATT&CK T1190/T1059/T1071).
  5. Zgodność z CISA KEV: jeżeli podlegasz dyrektywom BOD – odnotuj, że CVE znajduje się w KEV; egzekwuj terminy naprawy i weryfikacji.

Różnice / porównania z innymi przypadkami

W odróżnieniu od klasycznych RCE w serwerach HTTP bądź frameworkach backendowych, React2Shell uderza w warstwę „front-end-ową” uruchamianą po stronie serwera (RSC). To nietypowy wektor: przełamanie izolacji RSC umożliwia natychmiastową eskalację do kontekstu serwera aplikacji — podobnie krytyczne w skutkach jak błędy w deserializacji w tradycyjnych frameworkach, ale często mniej monitorowane i szerzej eksponowane po wdrożeniach SPA/SSR. (Wnioski syntetyczne na podstawie advisory i analiz TI.)

Podsumowanie / kluczowe wnioski

  • Pre-auth RCE w RSC + CVSS 10.0 = natychmiastowa aktualizacja obowiązkowa.
  • Aktywne kampanie z realnym wdrażaniem backdoorów linuksowych (KSwapDoor, ZnDoor) – weryfikuj hosty i szukaj artefaktów poeksploatacyjnych.
  • Dostawcy chmurowi i TI potwierdzają masową, wielopodmiotową eksploatację – reaguj jak na incydent o wysokiej pewności.

Źródła / bibliografia

  • React Team — Critical Security Vulnerability in React Server Components (3 grudnia 2025). (React)
  • CVE/NVD — rekord CVE-2025-55182. (CVE)
  • Palo Alto Networks Unit 42 — analiza eksploatacji i TTP (Flight, RSC, kampanie). (Unit 42)
  • Microsoft Defender Research — Defending against CVE-2025-55182: wskazówki detekcyjne. (Microsoft)
  • The Hacker News — bieżący przegląd kampanii (KSwapDoor, ZnDoor). (The Hacker News)
  • AWS / Google Threat Intel — obserwacje szybkiej eksploatacji przez grupy państwowe. (Amazon Web Services, Inc.)