Pomoc zdalna
alerty bezpieczeństwa

React2Shell w React i Next.js (CVE-2025-55182): przejęcie serwera, ataki ransomware

Luka w komponentach serwerowych React pozwala bez logowania uruchomić kod na serwerze strony, także na Next.js. Ataki ruszyły w kilka godzin, CISA potwierdza ransomware. Zaktualizuj aplikację i sprawdź serwer.

  • Paweł Niedźwiecki
Paweł Niedźwiecki
17 września 2026 10 min czytania
Fragment kodu programu na ekranie

Ten alert jest dla zarządu, CTO i CFO firm, których strona, sklep lub panel klienta zostały zbudowane na React lub Next.js, zwykle przez zewnętrzną pracownię. Werdykt: jeśli aplikacja używa komponentów serwerowych React (np. Next.js 15 lub 16 w trybie App Router) w wersji bez poprawki, zaktualizuj ją dziś i sprawdź serwer pod kątem włamania, bo luka React2Shell pozwala przejąć serwer bez logowania i jest używana także w atakach ransomware.

1. CO SIĘ STAŁO? Fakty w pigułce

Amerykańska agencja CISA 5 grudnia 2025 roku dopisała podatność CVE-2025-55182, nazwaną przez badaczy React2Shell, do katalogu KEV, czyli listy luk, o których ma dowody, że są wykorzystywane w prawdziwych atakach. Błąd tkwi w komponentach serwerowych React (React Server Components), na których działa wiele nowoczesnych stron i sklepów. Obca osoba może wysłać do strony spreparowane żądanie i uruchomić na serwerze własne polecenia, bez konta i bez niczyjego kliknięcia.

Ataki ruszyły w ciągu kilku godzin od ogłoszenia 3 grudnia 2025 roku. CISA dała agencjom federalnym tylko siedem dni, do 12 grudnia 2025 roku, oznaczyła lukę jako używaną w kampaniach ransomware i wyjątkowo poleciła, by po aktualizacji sprawdzić wszystkie instalacje dostępne z internetu pod kątem wcześniejszego włamania.

Element

Szczegóły

Identyfikator CVE

CVE-2025-55182 (powiązany odrzucony numer dla Next.js: CVE-2025-66478)

Data dodania do CISA KEV

2025-12-05

Termin naprawy wg CISA

2025-12-12 (7 dni od wpisu)

Produkt

Meta React Server Components: pakiety react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack; frameworki z nich korzystające, m.in. Next.js, React Router (API RSC), Waku, @parcel/rsc, @vitejs/plugin-rsc, rwsdk

Wersje zagrożone

React 19.0.0, 19.1.0, 19.1.1, 19.2.0. Next.js (wg NVD): 15.0.0 do 15.0.4, 15.1.0 do 15.1.8, 15.2.0 do 15.2.5, 15.3.0 do 15.3.5, 15.4.0 do 15.4.7, 15.5.0 do 15.5.6, 16.0.0 do 16.0.6 oraz wydania testowe 14.3.0-canary.77 i nowsze, 15.6.0-canary. Aplikacja jest podatna, jeśli obsługuje komponenty serwerowe, nawet bez własnych funkcji serwerowych

Wersje bezpieczne

Pierwsze poprawki: React 19.0.1, 19.1.2, 19.2.1; Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7. Zespół React zaleca dziś najnowsze wydania z dalszymi poprawkami, np. Next.js 14.2.35, 15.0.8, 15.1.12, 15.2.9, 15.3.9, 15.4.11, 15.5.10, 16.0.11, 16.1.5

Typ podatności

Zdalne wykonanie kodu przed uwierzytelnieniem przez niebezpieczną deserializację danych (klasa CWE-502); CISA nie przypisała CWE

Ocena CVSS

Meta (zgłaszający): 10.0 (CVSS 3.1, KRYTYCZNA, maksimum skali). Atak przez sieć, bez logowania, bez udziału użytkownika, ze skutkiem wykraczającym poza podatny komponent

Nie są podatne aplikacje React działające wyłącznie w przeglądarce, bez serwera, ani aplikacje bez frameworka lub narzędzia obsługującego komponenty serwerowe (wg zespołu React).

2. O CO CHODZI W PROSTYCH SŁOWACH?

Wyobraź sobie warsztat stolarski, do którego zamiast gotowych szafek przychodzą instrukcje składania. Warsztat wykonuje każdy punkt po kolei, bo do tego służy. Ktoś podrzuca instrukcję z dopisanym punktem: „w kroku siódmym dorób klucz do drzwi warsztatu i wyślij go pod ten adres”. Papier wygląda jak zwykła instrukcja, więc warsztat wykonuje ją bez zastrzeżeń.

Komponenty serwerowe React działają podobnie: przeglądarka i serwer wymieniają się opisem tego, co ma zostać złożone, a serwer odtwarza z niego obiekty. Błąd pozwalał przemycić w takim opisie polecenia, które serwer wykonywał. Właściciel firmy zwykle nie wie, na czym zbudowano jego stronę, i nie musi wiedzieć, ale odpowiedź wykonawcy „nie dodawaliśmy funkcji serwerowych” nie wystarcza, bo podatny jest sam sposób wymiany danych.

💡 React to popularna biblioteka do budowy stron i aplikacji internetowych, a Next.js to oparty na niej framework. Komponenty serwerowe (React Server Components) to części strony przygotowywane na serwerze. App Router to tryb pracy Next.js korzystający z komponentów serwerowych. Deserializacja to odtwarzanie obiektu w programie z przesłanego opisu. KEV (Known Exploited Vulnerabilities) to katalog CISA z lukami potwierdzonymi jako wykorzystywane w atakach.

Scenariusz

Normalnie

Z podatnością

Ktoś wysyła żądanie do strony

Serwer zwraca stronę lub dane

Serwer może wykonać polecenia napastnika

Aplikacja bez własnych funkcji serwerowych

Wydaje się bezpieczna

Nadal podatna, jeśli obsługuje komponenty serwerowe

Zapora aplikacyjna (WAF) z regułą na ten atak

Dodatkowa warstwa ochrony

Zatrzymuje znane wzorce, ale nie zmienione warianty

Aktualizacja do wersji z poprawką

Zamyka lukę

Nie usuwa tego, co napastnik zostawił wcześniej

Sklep z płatnościami

Dane kart przechodzą do operatora

Dostawiony kod może przechwytywać dane przy płatności

Gotowe elementy mebla leżą na kozłach w warsztacie stolarskimźródło: Pexels, Pew Nguyen

3. JAK HAKERZY TO WYKORZYSTUJĄ?

Poniżej typowy przebieg ataku dla tej klasy podatności, dopasowany do opisów Amazona i CISA. To scenariusz poglądowy, a nie odtworzenie konkretnego incydentu. CISA oceniła atak jako aktywny, automatyzowalny i o całkowitym skutku, a Amazon zaobserwował próby w ciągu godzin od ogłoszenia, powiązane z infrastrukturą grup działających z terenu Chin.

Etap

Czas

Akcja hakerów

Wynik

1. Skanowanie

T+0 min

Automatyczne wyszukiwanie stron zbudowanych na Next.js i innych frameworkach z komponentami serwerowymi

Tysiące potencjalnych celów

2. Wysłanie żądania

T+1 do 5 min

Spreparowane żądanie HTTP do punktu obsługi funkcji serwerowych

Wykonanie poleceń na serwerze

3. Rozpoznanie serwera

T+5 do 30 min

Próby odczytu pliku z listą kont systemowych, zapisy do katalogu plików tymczasowych

Wiedza o systemie i uprawnieniach

4. Utrwalenie

T+30 min do kilku godzin

Pozostawienie własnego kodu na serwerze lub w aplikacji

Dostęp działa także po aktualizacji

5. Kradzież

T+godziny do dni

Wykradanie kluczy, haseł do baz i usług, danych klientów; możliwy kod przechwytujący płatności

Wyciek danych

6. Szyfrowanie lub dalszy atak

T+dni do tygodni

Szyfrowanie danych dla okupu (CISA: Known) lub wejście do innych systemów

Przestój i żądanie zapłaty

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

Konkretne scenariusze zagrożenia

  • 🔴 Scenariusz 1: sieć piekarni z zamówieniami online na Next.js zostaje zaatakowana w dniu ogłoszenia luki, a aktualizacja wykonana tydzień później nie usuwa pozostawionego kodu.
  • 🔴 Scenariusz 2: sklep działa i sprzedaje, a w tle dostawiony skrypt przechwytuje dane kart płatniczych; odkrycie po miesiącu oznacza zgłoszenie naruszenia, powiadomienie klientów i kontrolę operatora płatności.
  • 🔴 Scenariusz 3: napastnik wykrada z serwera klucze do chmury i bazy danych, a potem szyfruje dane firmy i żąda okupu.

4. DLACZEGO TO RYZYKO DLA TWOJEJ FIRMY?

Większość firm nie wie, z jakich bibliotek zbudowano ich stronę, a model „aktualizujemy raz na kwartał” przy lukach atakowanych w ciągu godzin po prostu nie działa. Dodatkowo przejęty serwer strony często ma klucze do baz danych, poczty i płatności.

Obszar biznesu

Potencjalny wpływ

Czas do wystąpienia

Koszty szacunkowe

Operacyjny

Niedziałająca strona lub sklep, odtwarzanie serwera od zera

Godziny do dni

20 tys. do 250 tys. PLN (przestój, odbudowa, praca wykonawcy)

Bezpieczeństwo danych

Wyciek danych klientów, kluczy dostępu, danych kart przy płatności

Godziny do dni

30 tys. do 250 tys. PLN (analiza powłamaniowa, obsługa incydentu)

Finansowy

Utracona sprzedaż, okup, koszty wymaganych przez operatora płatności działań

Dni do tygodni

50 tys. do 800 tys. PLN łącznie

Reputacyjny

Powiadomienia klientów, ostrzeżenia przeglądarek, utrata zaufania

Tygodnie do miesięcy

50 tys. do 400 tys. PLN (utraceni klienci)

Prawny

Obowiązek zgłoszenia naruszenia do UODO w ciągu 72 godzin, a przy wysokim ryzyku także powiadomienia osób; możliwa kara RODO do 20 mln EUR lub 4% rocznego obrotu (zależnie od okoliczności i skali zaniedbań)

72 godziny od wykrycia

20 tys. do 150 tys. PLN (prawnicy, obsługa zgłoszeń), bez ewentualnej kary

Kwoty są orientacyjnymi widełkami dla małej i średniej firmy, nie danymi z tego incydentu.

Macierz ryzyka dla aplikacji z komponentami serwerowymi React bez poprawki Wpływ 5 | . . . . ■ ← KRYTYCZNE 4 | . . . . . 3 | . . . . . 2 | . . . . . 1 | . . . . . +-------------------- 1 2 3 4 5 Prawdopodobieństwo

Interpretacja: najwyższy poziom ryzyka, bo luka ma ocenę 10.0, nie wymaga logowania, jest masowo wykorzystywana od dnia ogłoszenia, także przez grupy ransomware; strony React działające wyłącznie w przeglądarce oraz Next.js bez App Router nie są objęte tą luką.

5. CO MUSISZ ZROBIĆ NATYCHMIAST?

Lp.

Priorytet

Działanie

Termin

Odpowiedzialny

1

🔴 NATYCHMIAST

Zapytać wykonawcę każdej strony i aplikacji: czy używa React, Next.js lub innego frameworka z komponentami serwerowymi, w jakiej wersji i w jakim trybie

Dziś

CTO / osoba odpowiedzialna za stronę

2

🔴 NATYCHMIAST

Zaktualizować React i framework do najnowszej wersji z poprawkami w danej linii (np. przez narzędzie Vercel fix-react2shell-next dla Next.js)

Dziś

Wykonawca / programista

3

🔴 NATYCHMIAST

Do czasu aktualizacji włączyć regułę zapory aplikacyjnej (WAF) blokującą ten atak, jeśli dostawca ją udostępnia

Dziś

Administrator / dostawca hostingu

4

🟠 PILNIE

Sprawdzić serwery pod kątem włamania: próby odczytu listy kont systemowych, zapisy do katalogu plików tymczasowych, polecenia systemowe uruchamiane przez proces aplikacji

Do 3 dni

Administrator / zewnętrzny zespół bezpieczeństwa

5

🟠 PILNIE

Jeśli serwer był podatny i dostępny z internetu od grudnia 2025 roku: zmienić klucze, hasła i tokeny zapisane w konfiguracji aplikacji

Do 7 dni

Programista / administrator

6

🟡 WAŻNIE

Dopisać do umowy z wykonawcą czas reakcji na krytyczne luki w użytych składnikach, liczony w dniach

Do 30 dni

CFO / CTO

7

🟡 WAŻNIE

Prowadzić spis bibliotek i wersji używanych w firmowych aplikacjach

Do 30 dni

CTO

Jeśli aktualizacja nie jest dostępna

Zespół React i twórcy frameworków wydali poprawki, a w kolejnych tygodniach dodatkowe łaty na powiązane luki (m.in. odmowa usługi i ujawnienie kodu źródłowego), więc docelowo trzeba przejść na najnowsze wersje. Filtry u dostawców hostingu i w chmurze są według zespołu React i Amazona tylko rozwiązaniem tymczasowym. Oceny efektywności to ocena ekspercka.

Czasowa miara ochronna

Efektywność

Łatwość wdrożenia

Reguła zapory aplikacyjnej (WAF) blokująca znane wzorce ataku, np. od Amazona

Średnia: zatrzymuje znane warianty, nie zmienione

Łatwa, jeśli strona stoi za WAF

Tymczasowe mechanizmy ochronne dostawców hostingu

Średnia: zespół React zaleca nie polegać na nich

Brak pracy po stronie firmy

Tymczasowe wyłączenie strony lub panelu do czasu aktualizacji

Wysoka

Łatwa technicznie, kosztowna biznesowo

Monitorowanie serwera pod kątem wskaźników opisanych przez Amazona

Niska jako ochrona, przydatna do wykrycia włamania

Średnia

Przed i po działaniu

Stan

Przed działaniem

Po działaniu

Wersja React i frameworka

Bez poprawki

Najnowsza wersja z poprawkami w danej linii

Wiedza o technologii strony

„Nie wiemy, na czym to zbudowano”

Spis bibliotek i wersji

Ślady włamania

Niesprawdzone

Serwer sprawdzony, klucze i hasła zmienione

Umowa z wykonawcą

Aktualizacje „przy okazji”

Określony czas reakcji na krytyczne luki

Zgodność z terminem CISA

Zaległość od 12 grudnia 2025 roku (termin wiąże agencje USA, ale jest dobrym punktem odniesienia)

Luka zamknięta i udokumentowana

6. KONTEKST I SKALA ZAGROŻENIA

Aspekt

Informacja

Czy jest wykorzystywana?

TAK (potwierdzone przez CISA). Amazon zaobserwował próby wykorzystania w ciągu kilku godzin od ogłoszenia

Grupy przestępcze

Amazon powiązał wczesne ataki z infrastrukturą grup działających z terenu Chin; konkretnych nazw nie udało się zweryfikować w źródłach

Kampanie ransomware

TAK (CISA KEV: Known), bez wskazania konkretnych kampanii

Ocena CVSS

10.0 KRYTYCZNA (CVSS 3.1, Meta)

PoC dostępny publicznie?

Brak potwierdzenia w zweryfikowanych źródłach; ataki automatyzowalne i masowe wg CISA i Amazona

Liczba atakowanych firm

Brak publicznych informacji

Kto zgłosił błąd

Lachlan Davidson (wg zespołu React)

Prognoza EPSS

0,99616, praktycznie maksimum skali (wg analizy źródłowej)

Sygnały zagrożenia dla CVE-2025-55182 CVSS 3.1 (Meta) 10.0/10 ████████████████████ KRYTYCZNA EPSS (próba w 30 dni) ~99,6% ████████████████████ MAKSYMALNA CISA KEV TAK ████████████████████ ataki potwierdzone Ransomware (CISA) Known ████████████████████ używana Czas do ataków godziny ████████████████████ natychmiast
Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

Linia czasu incydentu

2025-11-29 Lachlan Davidson zgłasza błąd zespołowi React 2025-12-03 Publiczne ujawnienie, poprawki React 19.0.1, 19.1.2, 19.2.1; publikacja CVE w NVD; pierwsze próby ataków w ciągu godzin (wg Amazona) 2025-12-05 CISA dodaje lukę do katalogu KEV, ransomware: Known 2025-12-12 Termin naprawy wg CISA dla agencji federalnych 2026-01-26 Zespół React aktualizuje zalecane wersje o poprawki kolejnych powiązanych luk 2026-08-04 Ostatnia aktualizacja wpisu w NVD ... ponad 9 miesięcy od terminu CISA 2026-09-17: TUTAJ JESTEŚMY

7. BEZPOŚREDNI LINK DO DZIAŁANIA: checklista dla CTO/CFO

Komunikat zespołu React z instrukcjami aktualizacji: react.dev: Critical Security Vulnerability in React Server Components . Narzędzie do aktualizacji Next.js: github.com/vercel-labs/fix-react2shell-next . Wpis w NVD: nvd.nist.gov/vuln/detail/CVE-2025-55182 .

Lp.

Zadanie

Kto

Deadline

1

Spisać wszystkie strony, sklepy i panele firmy wraz z ich wykonawcami

CTO

DZISIAJ

2

Uzyskać od wykonawców pisemną odpowiedź: technologia, wersja React i frameworka, tryb pracy

CTO

DZISIAJ

3

Zatwierdzić natychmiastową aktualizację poza zwykłym harmonogramem prac

CTO

DZISIAJ

4

Zlecić sprawdzenie serwerów pod kątem włamania od grudnia 2025 roku

CTO

DO JUTRA

5

Zlecić zmianę kluczy i haseł zapisanych w konfiguracji aplikacji, jeśli serwer był podatny

CTO

DO JUTRA

6

Zarezerwować budżet na aktualizację i ewentualną analizę powłamaniową

CFO

DO JUTRA

7

Sprawdzić umowy z wykonawcami pod kątem czasu reakcji na krytyczne luki

CFO

DO JUTRA

8. PYTANIA DO TWOJEGO ZESPOŁU IT

#

Pytanie

Odpowiedź

Priorytet

1

Które nasze strony i aplikacje używają React lub Next.js?

[lista]

🔴

2

Czy korzystają z komponentów serwerowych (np. Next.js App Router)?

TAK / NIE

🔴

3

Jaka jest wersja React i frameworka w każdej z nich?

[wersja]

🔴

4

Kiedy wdrożono wersję z poprawkami?

[data]

🔴

5

Czy sprawdzenie serwerów wykazało ślady włamania?

TAK / NIE

🟠

6

Czy zmieniliśmy klucze, hasła i tokeny zapisane w konfiguracji aplikacji?

TAK / NIE, [data]

🟠

7

Czy strona stoi za zaporą aplikacyjną (WAF) z aktualnymi regułami?

TAK / NIE

🟡

Pytania diagnostyczne dla managera

  • ✓ Czy wiem, kto zbudował naszą stronę i kto odpowiada za jej aktualizacje dziś?
  • ✓ Czy umowa z wykonawcą mówi, jak szybko reaguje on na krytyczne luki w użytych bibliotekach?
  • ✓ Czy ktoś sprawdził nasz serwer po aktualizacji, a nie tylko zainstalował poprawkę?
  • ✓ Czy mamy procedurę zgłoszenia naruszenia danych do UODO w 72 godziny?
  • ✓ Czy przyjmujemy płatności na stronie i czy operator płatności wymaga od nas zgłaszania incydentów?

Podsumowanie

CVE-2025-55182 (React2Shell) pozwala bez logowania przejąć serwer aplikacji zbudowanej z komponentami serwerowymi React, w tym wielu stron na Next.js. Ataki ruszyły w ciągu godzin od ogłoszenia, a CISA potwierdza użycie w kampaniach ransomware, więc aktualizacja do najnowszych wersji z poprawkami to zadanie na dziś, a sprawdzenie serwerów pod kątem wcześniejszego włamania i zmiana kluczy na ten tydzień.

Czytaj dalej

Powiązane artykuły

Zestaw zmienia się codziennie, więc przy kolejnej wizycie zobaczysz inny wycinek bloga.

Masz to samo u siebie?

Możemy się tym zająć

Krótka rozmowa wystarczy, żeby ocenić zakres prac i podać widełki kosztu. Bez zobowiązań.