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 choćby ~39% środowisk chmurowych może mieć zainstalowane wersje podatne na React2Shell. Dane skanowania Internetu wskazują też, iż 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, iż 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 gwałtownie – 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), najważniejsze 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, iż stosowanie nowoczesnych bibliotek i frameworków wymaga tak samo rygorystycznego podejścia do bezpieczeństwa, jak tradycyjny kod backendowy – a choćby bardziej rygorystycznego, bo atak może być przeprowadzony zdalnie, automatycznie i masowo.
