
Co znajdziesz w tym artykule?
- 1 Wprowadzenie do problemu / definicja luki
- 2 W skrócie
- 3 Kontekst / historia / powiązania
- 4 Analiza techniczna / szczegóły luki
- 5 Praktyczne konsekwencje / ryzyko
- 6 Rekomendacje operacyjne / co zrobić teraz
- 7 Różnice / porównania z innymi przypadkami (jeśli dotyczy)
- 8 Podsumowanie / kluczowe wnioski
- 9 Źródła / bibliografia
Wprowadzenie do problemu / definicja luki
Na początku grudnia 2025 r. ujawniono krytyczną podatność React2Shell (CVE-2025-55182) w React Server Components (RSC), ocenioną na CVSS 10.0, umożliwiającą nieautoryzowane zdalne wykonanie kodu (RCE). Co istotne, ryzyko nie ogranicza się do „egzotycznych” implementacji — obecność podatnych pakietów RSC w środowisku często bywa wystarczająca, by atak był możliwy.
W lutym 2026 r. badacze opisali kolejną, bardzo praktyczną ewolucję post-exploitation: po uzyskaniu dostępu atakujący modyfikują konfiguracje NGINX, by przechwytywać i przekierowywać legalny ruch użytkowników przez własną infrastrukturę (klasyczny model Adversary-in-the-Middle, tylko „w warstwie reverse proxy”).
W skrócie
- Punkt wejścia: w wielu obserwacjach — React2Shell (CVE-2025-55182) jako początkowy RCE (wnioskowane na podstawie korelacji czasowej i overlapu infrastruktury).
- Cel operacji: „ciche” przejęcie ścieżek URL w NGINX i przekierowanie wybranych żądań do serwerów napastnika.
- Twarde sygnały kompromitacji: podejrzane bloki
location,rewrite,proxy_pass, niestandardowe domeny backendów, artefakty mapowania w/tmp, oraz wskazane w analizie domeny/IP C2. - Kogo to dotyczy: szczególnie środowiska z NGINX oraz panele zarządzania hostingiem (np. Baota/BT), a także domeny w wybranych TLD (m.in. .in, .id) i sektory publiczne/edukacyjne (.gov, .edu).
Kontekst / historia / powiązania
React2Shell został publicznie ujawniony 3 grudnia 2025 r. i niemal natychmiast zaczął być masowo wykorzystywany przez różne klastry zagrożeń: od aktorów oportunistycznych (np. cryptomining) po grupy o profilu szpiegowskim.
Równolegle do „klasycznych” łańcuchów (droppery, backdoory, minery), obserwujemy coraz częściej monetyzację dostępu poprzez przejęcie ruchu WWW — to wygodne, bo:
- nie zawsze wymaga „hałaśliwego” malware na endpointach,
- może generować zysk (np. przekierowania, phishing, wstrzykiwanie treści),
- a jednocześnie bywa trudne do wykrycia, jeśli ktoś nie monitoruje integralności konfiguracji reverse proxy.
Analiza techniczna / szczegóły luki
1) React2Shell (CVE-2025-55182) – gdzie jest problem?
React opisał podatność jako krytyczną lukę w pakietach RSC:
react-server-dom-webpackreact-server-dom-parcelreact-server-dom-turbopack
Podatne były m.in. wersje 19.0, 19.1.0, 19.1.1, 19.2.0, a poprawki wprowadzono w 19.0.1 / 19.1.2 / 19.2.1.
Microsoft zwraca uwagę na mechanikę problemu: niewystarczająca walidacja przychodzących danych w określonych wersjach RSC może prowadzić do wstrzyknięcia struktur akceptowanych przez React i finalnie do RCE (m.in. przez podatne wzorce przetwarzania danych).
2) Po RCE: przejęcie NGINX przez złośliwe location + proxy_pass
W opisywanej kampanii atakujący po uzyskaniu dostępu wdrażają zestaw skryptów shellowych, które automatycznie „wstrzykują” bloki konfiguracji NGINX. Kluczowy wzorzec wygląda (koncepcyjnie) tak:
- dopasowanie konkretnej ścieżki:
location /%PATH%/ { ... } - zbudowanie pełnego URL:
set $fullurl "$scheme://$host$request_uri"; - przepięcie na backend napastnika przez
proxy_pass - zachowanie kontekstu żądania przez liczne
proxy_set_header(Host, X-Real-IP, X-Forwarded-For, User-Agent, Referer, itd.) - dodatkowo
rewrite, aby zamienić „ładny” path na parametr (np.index.php?domain=...) po stronie infrastruktury napastnika
Efekt: użytkownik trafia na poprawnie działającą stronę/ścieżkę, ale wybrane żądania przechodzą przez serwer kontrolowany przez atakującego — co daje możliwość podmiany treści, wstrzyknięć, przekierowań, kradzieży sesji (w zależności od reszty stacku) i budowy dalszych łańcuchów ataku.
3) Toolkit: automatyzacja, persystencja i „bezawaryjne” przejęcie
Datadog opisał wieloetapowy toolkit. Najważniejsze elementy z perspektywy obrony:
zx.sh– orkiestrator (pobieranie/kolejne etapy). Ciekawy detal: gdycurl/wgetsą blokowane, używa surowych połączeń TCP przez/dev/tcpdo pobierania treści.bt.sh– wariant ukierunkowany na Baota/BT, operujący na ścieżkach panelu (m.in./www/server/panel/vhost/nginx) i nadpisujący konfiguracje.4zdh.sh– „mocniejszy” wariant: enumeracja popularnych lokalizacji NGINX (/etc/nginx/sites-enabled,/etc/nginx/conf.d, itd.), walidacja przeznginx -t, oraz artefakt mapowania w/tmp/.domain_group_map.conf.zdh.sh– węższe targetowanie (Linux/kontenery) i wybrane TLD.ok.sh– raportowanie reguł hijackingu i eksfiltracja mapy do wskazanego C2.
4) IoC z raportu Datadog (przykłady)
W analizie wskazano m.in. domeny backendów oraz host C2 do uploadu (w formie IoC). Przykładowo:
- backendy:
xzz.pier46[.]com,ide.hashbank8[.]com,th.cogicpt[.]org - C2/upload target:
158.94.210[.]227 - artefakt persystencji/trackingu:
/tmp/.domain_group_map.conf
Praktyczne konsekwencje / ryzyko
- Przechwycenie ruchu bez „widocznego malware” na stacjach
Jeśli NGINX stoi przed aplikacją (częste), zmiana konfiguracji może być wystarczająca, by przejąć wybrane ścieżki i prowadzić działania w tle. - Ryzyko phishingu / podmiany treści / złośliwych przekierowań
Atakujący, kontrolując backend dla części requestów, może serwować alternatywne odpowiedzi dla określonych endpointów (np. „/help”, „/news”, „/blog” — w zależności od wzorca). - Dalsza eskalacja i utrzymanie dostępu
Jeżeli punkt wejścia to RCE, NGINX-hijacking bywa świetnym mechanizmem persystencji: nawet po częściowym sprzątaniu systemu, konfiguracja reverse proxy może nadal „robić swoje”.
Rekomendacje operacyjne / co zrobić teraz
A. Natychmiastowa redukcja ryzyka (patching i weryfikacja ekspozycji)
- Zaktualizuj podatne pakiety RSC do co najmniej 19.0.1 / 19.1.2 / 19.2.1 (zgodnie z gałęzią, której używasz).
- Jeśli używasz ekosystemu Next.js/React w produkcji, załóż, że skanowanie i próby exploitacji są powszechne (wiele klastrów, różne payloady).
B. Polowanie na oznaki przejęcia NGINX
- Przejrzyj konfiguracje NGINX pod kątem nietypowych
locationoraz parrewrite+proxy_passkierujących na nieznane domeny. - Szukaj artefaktów wskazanych w raporcie (np.
/tmp/.domain_group_map.conf) i zweryfikuj, czy w/tmplub/dev/shmnie pojawiają się pliki raportujące/mapujące reguły. - Zweryfikuj logi zmian: kiedy modyfikowano pliki w
/etc/nginx/**lub katalogach paneli (np. BT).
C. Monitoring integralności i hardening
- Wdróż File Integrity Monitoring (FIM) dla ścieżek NGINX (wszystkie katalogi konfiguracyjne + te specyficzne dla paneli). Datadog podaje przykładowy warunek detekcji dla zapisu plików
.confw typowych lokalizacjach. - Ogranicz dostęp do paneli zarządzania (np. BT): tylko VPN/allowlista, MFA, rotacja haseł i kluczy, blokada publicznej ekspozycji. (To dobra praktyka niezależnie od kampanii; w tej kampanii BT jest wyraźnie wskazywany jako środowisko docelowe).
D. Incident response (gdy znajdziesz kompromitację)
- Załóż, że NGINX-hijacking to etap po włamaniu: sprawdź, jak uzyskano dostęp (podatne RSC/Next.js, exposed serwisy, klucze, itp.).
- Usuń złośliwe bloki, odtwórz konfiguracje z repo/backupów, wykonaj
nginx -t, przeładuj usługę, a następnie przeanalizuj „pamięć” systemu: crony, systemd, kontenery, nowe binarki/skrypty.
Różnice / porównania z innymi przypadkami (jeśli dotyczy)
Typowe post-exploitation po RCE w web stacku to dropper + miner/backdoor. React2Shell jest jednak interesujący, bo:
- bywa masowo wykorzystywany przez wiele typów aktorów (od opportunistów po grupy przypisywane państwom),
- a przejęcie NGINX to „sprytna” monetyzacja/operacjonalizacja dostępu: mniej widoczne niż koparka, a często bardziej dochodowe/strategiczne (szczególnie gdy reverse proxy obsługuje krytyczne domeny lub ruch sektorów .gov/.edu).
Podsumowanie / kluczowe wnioski
- CVE-2025-55182 (React2Shell) to nie tylko „jednorazowy exploit” — w 2026 r. obserwujemy, jak dostęp po RCE jest przekuwany w przejęcie ruchu WWW poprzez modyfikacje NGINX.
- Najgroźniejsze są scenariusze, w których NGINX stoi na styku użytkownik ↔ aplikacja, bo wtedy atakujący może sterować ruchem na poziomie reverse proxy.
- Priorytety obrony: patch React/RSC, monitoruj integralność konfiguracji NGINX, oraz traktuj wszelkie anomalie w
location/proxy_passjako potencjalny sygnał kompromitacji.
Źródła / bibliografia
- Datadog Security Labs – analiza kampanii hijackingu ruchu przez złośliwe konfiguracje NGINX (securitylabs.datadoghq.com)
- The Hacker News – omówienie kampanii i kontekstu React2Shell→NGINX traffic hijacking (The Hacker News)
- React.dev – oficjalny komunikat o krytycznej podatności CVE-2025-55182 i wersjach naprawionych (react.dev)
- Google Threat Intelligence Group – obserwacje masowej eksploatacji i rekomendacje obrony (Google Cloud)
- Microsoft Security Blog – techniczny kontekst podatności i podejście defensywne (Microsoft)