React2Shell (CVE-2025-55182): krytyczne RCE w React Server Components już wykorzystywane. Jak się bronić?

securitybeztabu.pl 1 dzień temu

Wprowadzenie do problemu / definicja luki

React2Shell (CVE-2025-55182) to nieautoryzowane zdalne wykonanie kodu (RCE) w React Server Components (RSC), wynikające z błędnej deserializacji ładunków trafiających do endpointów Server Functions. Podatność dotyczy m.in. paczek react-server-dom-webpack, react-server-dom-parcel i react-server-dom-turbopack w gałęziach React 19.0.x/19.1.x/19.2.x i otrzymała CVSS 10.0. Zespół React zaleca natychmiastową aktualizację do wersji naprawionych: 19.0.1, 19.1.2 oraz 19.2.1.

W skrócie

  • Co to jest: RCE w RSC przez niebezpieczną deserializację danych dostarczonych w żądaniu HTTP do Server Functions.
  • Status: CISA dodała CVE-2025-55182 do katalogu KEV (Known Exploited Vulnerabilities) 5 grudnia 2025 r.; termin dla agencji federalnych USA: 26 grudnia 2025 r.
  • Eksploatacja: AWS raportuje szybkie próby i ataki grup „China-nexus” (m.in. Earth Lamia, Jackpot Panda) w ciągu godzin od ujawnienia.
  • Skala: Wiz ocenia, iż 39% środowisk chmurowych zawiera instancje React/Next.js w wersjach podatnych.
  • Naprawa: React 19.0.1/19.1.2/19.2.1 oraz Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 (canary 15.6.0 częściowo) i downgrade z błędnych kanarków 14.x.

Kontekst / historia / powiązania

Lukę zgłosił 29 listopada 2025 r. badacz Lachlan Davidson w programie Meta; 3 grudnia opublikowano poprawki i poradnik aktualizacji. Następnie Vercel wydał własne zalecenia dla Next.js i wdrożył reguły WAF jako czasową ochronę. 5 grudnia CISA oficjalnie oznaczyła CVE w katalogu KEV, potwierdzając obserwowaną eksploatację w środowiskach produkcyjnych.

Analiza techniczna / szczegóły luki

Istota problemu to deserializacja nieufnych danych (CWE-502) w implementacji protokołu „Flight” dla RSC. Atakujący może przygotować specjalnie sformatowane żądanie HTTP do endpointu Server Function; podczas dekodowania ładunku dochodzi do wykonania kodu po stronie serwera. Podatne są standardowe konfiguracje RSC – choćby jeżeli aplikacja nie definiuje własnych Server Functions, ale wspiera RSC, może być do trafienia.

W wektorze detekcji AWS zwraca uwagę m.in. na charakterystyczne nagłówki i wzorce w treści żądań (np. next-action, rsc-action-id, ciągi $@ oraz "status":"resolved_model"), co pomaga korelować logi i IOC.

Praktyczne konsekwencje / ryzyko

  • Pełne RCE na hostach z podatnymi wersjami React/Next.js (RSC).
  • Masowe skanowanie i szybka weaponizacja PoC po publikacji – potwierdzone telemetrią AWS i obserwacjami wielu zespołów.
  • Ryzyko łańcucha dostaw front-/back-endu: liczne frameworki/bundlery reużywają implementację RSC (Next.js, React Router RSC preview, Waku, wtyczki Vite/Parcel, Redwood SDK).
  • Ekspozycja w chmurze: duże rozpowszechnienie Next.js/React w środowiskach produkcyjnych zwiększa powierzchnię ataku.

Rekomendacje operacyjne / co zrobić teraz

  1. Aktualizacje krytyczne (priorytet najwyższy).
    • React RSC: 19.0.1 / 19.1.2 / 19.2.1.
    • Next.js (App Router): 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7; jeżeli używasz kanarków 14.3.0-canary.77+, zjedź do stabilnej 14.x.
  2. Higiena ekspozycji. Ogranicz publiczny dostęp do endpointów RSC/Server Functions (WAF, geofencing, rate limiting), ale nie traktuj WAF jako zastępstwa patcha.
  3. Detekcja i monitoring.
    • Przeglądaj logi pod kątem żądań POST z nagłówkami next-action / rsc-action-id i wzorcami $@, "resolved_model".
    • Szukaj nietypowych procesów potomnych Node/React, prób odczytu /etc/passwd, poleceń rozpoznawczych (whoami, id).
  4. IR i hunting. jeżeli środowisko było narażone, sprawdź: kradzież poświadczeń chmurowych (np. AWS), koparki kryptowalut, web-shelle/sideloadery. Wiz raportuje takie aktywności po udanych exploitach.
  5. Zgodność/KEV. Organizacje objęte politykami zgodności powiązanymi z CISA KEV powinny odnotować daty Added: 2025-12-05 i Due: 2025-12-26 oraz wykazać działania naprawcze.

Różnice / porównania z innymi przypadkami

  • Źródło błędu: logiczna deserializacja w protokole RSC „Flight”, a nie klasyczna injekcja kodu w warstwie aplikacji.
  • Dziedziczenie podatności: wiele frameworków/bundlerów jest podatnych wtórnie, bo reużywa implementację RSC – zbliżone do znanych scenariuszy „upstream vuln → downstream frameworks”.
  • PoC i eksploatacja: bardzo krótka droga od publikacji poradnika do masowych skanów i faktycznych ataków (telemetria AWS/Wiz), co przypomina tempo weaponizacji znane z luk w popularnych komponentach web.

Podsumowanie / najważniejsze wnioski

  • To maksymalnie krytyczna luka (CVSS 10.0) w szeroko stosowanym komponencie serwerowym React; patchuj dziś, a nie „w następnym sprincie”.
  • Sama osłona WAF nie wystarczy – aktualizacja jest jedynym trwałym remedium.
  • Zaktywizowały się grupy powiązane z Chinami, a skala użycia Next.js/React w chmurze zwiększa ryzyko incydentów i wtórnych nadużyć (kradzież kluczy, kryptomining, web-shelle).

Źródła / bibliografia

  • React Team: „Critical Security Vulnerability in React Server Components” (03.12.2025) – opis, wersje naprawione, instrukcje aktualizacji. (React)
  • NVD: wpis dla CVE-2025-55182 (aktualizacje 05.12.2025) – opis, CVSS, status w CISA KEV (Added/Due). (NVD)
  • AWS Security Blog: „China-nexus cyber threat groups rapidly exploit React2Shell (CVE-2025-55182)” – telemetria ataków, IOC, zalecenia operacyjne. (Amazon Web Services, Inc.)
  • Wiz Research: „Critical Vulnerabilities in React and Next.js: everything you need to know” – skala ekspozycji (39%), techniczne tło, obserwacje eksploatacji. (wiz.io)
  • Vercel: „Summary of CVE-2025-55182” – lista wersji Next.js z poprawkami i uwagi dot. WAF. (Vercel)
Idź do oryginalnego materiału