Kilka dni temu ujawniono poważną lukę w ekosystemie React Server Components (RSC). Otrzymała numer CVE-2025-55182 i nazwę React2Shell. Podatności tego typu umożliwiają zdalne wykonanie kodu (RCE) bez konieczności uwierzytelnienia. Lukę oznaczono maksymalnym wynikiem krytyczności – CVSS 10.0.

Problem tkwi w sposobie, w jaki React obsługuje deserializację danych przesyłanych przez protokół „Flight”, czyli mechanizm odpowiedzialny za komunikację między serwerem a klientem. Nieprawidłowa walidacja danych pozwala atakującemu przesłać specjalnie spreparowany obiekt HTTP, który przy przetworzeniu powoduje wykonanie dowolnego kodu po stronie serwera.

Skala zagrożenia

Podatność dotyczy nie tylko Reacta w czystej postaci – zagrożone są również wszystkie frameworki i narzędzia, które korzystają z RSC, w tym popularne środowiska takie jak Next.js, a także biblioteki bundlerów i pluginów, jak Parcel, Vite, Waku, RedwoodSDK czy React Router.

Według szacunków firm zajmujących się bezpieczeństwem chmurowym nawet ~39% środowisk chmurowych może mieć zainstalowane wersje podatne na React2Shell. Dane skanowania Internetu wskazują też, że wiele publicznie dostępnych usług (internet-facing) może być narażonych – co stawia w obliczu zagrożenia dużą część współczesnych aplikacji webowych.

Ataki w naturze

Zaledwie kilka dni po publicznym ujawnieniu luki (3 grudnia 2025) pojawiły się raporty o aktywnym wykorzystywaniu React2Shell przez grupy powiązane ze środowiskiem państwowym z Chin, m.in. Earth Lamia oraz Jackpot Panda.

Ataki obejmowały m.in. zdalne uruchomienie kodu, instalację downloaderów, koparek kryptowalut, a także próby kradzieży poświadczeń (np. AWS). W reakcji na te incydenty 5 grudnia 2025 roku CISA oficjalnie wpisała React2Shell do katalogu znanych i aktywnie wykorzystywanych podatności (Known Exploited Vulnerabilities – KEV). Oznacza to, że organizacje dostają formalne ostrzeżenie, a instytucje federalne w USA nakaz załatania podatności do 26 grudnia.

Co można (i trzeba) zrobić

Łatka została wydana stosunkowo szybko – podatne pakiety zostały zaktualizowane. Wersje bezpieczne to m.in. 19.0.1, 19.1.2 i 19.2.1 pakietów react-server-dom-*.

Jeśli w Twoim środowisku są aplikacje korzystające z React RSC (bezpośrednio lub przez Next.js / inne frameworki), kluczowe są:

  • jak najszybsza aktualizacja do najnowszej wersji bibliotek,
  • dokładna inwentaryzacja wszystkich publicznie dostępnych endpointów webowych,
  • monitorowanie logów HTTP pod kątem nietypowych lub podejrzanych żądań do Server-Function / RSC endpointów,
  • jeśli możliwe: zastosowanie WAF (Web Application Firewall) lub reguł zapobiegających deserializacji niezweryfikowanych payloadów – choć WAF to jedynie warstwa obronna, a nie pełna gwarancja bezpieczeństwa.

Wnioski – dlaczego React2Shell to istotne odkrycie

React2Shell to jeden z najpoważniejszych błędów w ekosystemie JavaScript/Web w ostatnich latach. Zagrożenie jest szczególnie dotkliwe, bo atak może być przeprowadzony bez jakiejkolwiek autoryzacji – wystarczy wysłać odpowiednio spreparowane żądanie. Dla organizacji, które budują nowoczesne aplikacje webowe opierające się na React / Next.js / RSC, to poważny sygnał: bezpieczeństwo frameworków front-end/wpół-full-stack to dziś również sprawa szeroko rozumianego backendu. W kontekście firm i korporacji React2Shell pokazuje, że stosowanie nowoczesnych bibliotek i frameworków wymaga tak samo rygorystycznego podejścia do bezpieczeństwa, jak tradycyjny kod backendowy – a nawet bardziej rygorystycznego, bo atak może być przeprowadzony zdalnie, automatycznie i masowo.