Krytyczna luka w React (CVE-2025-55182) i jej wpływ na Next.js (CVE-2025-66478): jak zareagować natychmiast

securitybeztabu.pl 1 dzień temu

Wprowadzenie do problemu / definicja luki

Zespół React ujawnił krytyczną podatność CVE-2025-55182 w mechanizmie React Server Components (RSC). Luka umożliwia zdalne wykonanie kodu (RCE) bez uwierzytelnienia poprzez niebezpieczną deserializację ładunków wysyłanych do endpointów React Server Functions. Co istotne, aplikacja może być podatna choćby wtedy, gdy nie wystawia własnych endpointów Server Functions, o ile wspiera RSC. Luka otrzymała CVSS 10.0 i dotyczy wydań 19.0 / 19.1.0 / 19.1.1 / 19.2.0 pakietów react-server-dom-*.

Równolegle zaktualizowano doradztwo bezpieczeństwa Next.js, które śledzi wpływ upstreamu pod osobnym numerem CVE-2025-66478 i obejmuje projekty korzystające z App Routera.

W skrócie

  • CVE-2025-55182 (React RSC) – RCE pre-auth przez niebezpieczną deserializację; CVSS 10.0. Wpływa na react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack w wersjach 19.0, 19.1.0, 19.1.1, 19.2.0.
  • CVE-2025-66478 (Next.js) – downstreamowy skutek luki React; dotyczy Next.js 15.x i 16.x (App Router) oraz niektórych canary 14.3.x; naprawione w 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7.
  • Patch React: poprawki w 19.0.1 / 19.1.2 / 19.2.1; aktualizuj natychmiast.
  • Media branżowe wzywają do pilnego działania; skala wpływu obejmuje popularne frameworki i dostawców hostingu.

Kontekst / historia / powiązania

Błąd zgłoszono 29 listopada 2025 r. w ramach programu bug bounty Meta. Po weryfikacji i pracach koordynacyjnych z dostawcami hostingu oraz twórcami ekosystemu, 3 grudnia 2025 r. opublikowano poprawki oraz ujawniono CVE. Lista projektów dotkniętych przez RSC obejmuje m.in. Next.js, React Router (niestabilne API RSC), Waku, @vitejs/plugin-rsc, rwsdk.

Analiza techniczna / szczegóły luki

Istota podatności to niebezpieczna deserializacja niezaufanych danych (CWE-502) w strumieniu RSC/React Flight: specjalnie spreparowane żądanie HTTP do endpointu Server Function po stronie serwera może po deserializacji doprowadzić do wykonania arbitralnego kodu. W metrykach CVSS: AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H.

Wersje podatne (React RSC):

  • react-server-dom-webpack 19.0 / 19.1.0–19.1.1 / 19.2.0
  • react-server-dom-parcel 19.0 / 19.1.0–19.1.1 / 19.2.0
  • react-server-dom-turbopack 19.0 / 19.1.0–19.1.1 / 19.2.0
    Wersje naprawione: 19.0.1 / 19.1.2 / 19.2.1.

Wpływ na Next.js (downstream): dotyczy App Routera w 15.x i 16.x (oraz canary >= 14.3.0-canary.77). Naprawione w: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7; canary powinny zostać zdegradowane do stabilnej 14.x jeżeli nie ma możliwości aktualizacji do linii 15/16.

Praktyczne konsekwencje / ryzyko

  • Zdalne przejęcie serwera bez interakcji użytkownika i bez uwierzytelnienia – pełna trójka CIA w ryzyku (C/H, I/H, A/H).
  • Domyślne konfiguracje wielu frameworków z RSC są podatne; choćby świeżo utworzona aplikacja Next.js z App Routerem była narażona bez modyfikacji kodu, dopóki nie zastosowano poprawek.
  • Niektórzy dostawcy hostingu wprowadzili tymczasowe filtry/mitigacje ruchu, ale nie należy na nich polegać – wymagane jest pełne patchowanie.

Rekomendacje operacyjne / co zrobić teraz

1) Szybki audyt zależności

Sprawdź, czy projekt używa RSC lub frameworków/bundlerów, które je wspierają:

# Czy aplikacja ma zależności RSC? npm ls react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack || true # Szybki grep lockfile'a grep -E "react-server-dom-(webpack|parcel|turbopack)" package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null | head # Czy projekt to Next.js z App Routerem? npm ls next || true

2) Aktualizacja React RSC do wersji załatanych

Zastosuj dowolną z linii z poprawką:

# wybierz odpowiednią gałąź: npm install react@19.0.1 react-dom@19.0.1 --save-exact # lub npm install react@19.1.2 react-dom@19.1.2 --save-exact # lub npm install react@19.2.1 react-dom@19.2.1 --save-exact # pakiety RSC npm install react-server-dom-webpack@latest react-server-dom-parcel@latest react-server-dom-turbopack@latest

(Wersje naprawcze: 19.0.1 / 19.1.2 / 19.2.1).

3) Aktualizacja Next.js (jeśli dotyczy)

# zaktualizuj w obrębie swojej linii wydań npm install next@15.0.5 # dla 15.0.x npm install next@15.1.9 # dla 15.1.x npm install next@15.2.6 # dla 15.2.x npm install next@15.3.6 # dla 15.3.x npm install next@15.4.8 # dla 15.4.x npm install next@15.5.7 # dla 15.5.x npm install next@16.0.7 # dla 16.0.x # o ile jesteś na 14.3 canary >= .77 – przejdź na stabilne 14.x npm install next@14

4) Dodatkowe kroki higieniczne

  • Zbuduj i redeploy wszystkie usługi po aktualizacji.
  • Przegląd reguł WAF/Reverse Proxy – tymczasowe filtry od dostawców mogą pomóc, ale nie zastępują patcha.
  • Monitoruj NVD/CVE i kanały producentów pod kątem dalszych aktualizacji lub oznak exploitów w naturze.

Różnice / porównania z innymi przypadkami

  • Upstream vs downstream: CVE-2025-55182 dotyczy samego React RSC i to on jest źródłem problemu. CVE-2025-66478 śledzi efekt w Next.js (projekty z App Routerem), dostarczając konkretne numery wersji naprawczych i wskazówki aktualizacyjne. Strategia naprawy: zaktualizować zarówno React RSC, jak i Next.js we wskazanych liniach.
  • Aplikacje bez serwera lub frameworków wspierających RSC nie są dotknięte (np. czysto kliencki React).

Podsumowanie / najważniejsze wnioski

  • To krytyczne RCE w React RSC o CVSS 10.0; reakcja musi być natychmiastowa.
  • Zaktualizuj React do 19.0.1 / 19.1.2 / 19.2.1 oraz – jeżeli używasz – Next.js do wersji z łatką w swojej linii.
  • Nie polegaj na mitigacjach hostingu – traktuj je wyłącznie pomocniczo.
  • Zaplanuj audyt zależności i redeploy po aktualizacjach.

Źródła / bibliografia

  • React: Critical Security Vulnerability in React Server Components (03.12.2025) – szczegóły, wersje naprawcze, oś czasu. (React)
  • NVD: CVE-2025-55182 – opis techniczny i metryki CVSS. (NVD)
  • Next.js: Security Advisory: CVE-2025-66478 – wersje dotknięte i naprawy po stronie Next.js. (Next.js)
  • Vercel: Summary of CVE-2025-55182 – podsumowanie i komunikacja producenta. (Vercel)
  • Dark Reading: Critical React Flaw Triggers Calls for Immediate Action – omówienie medialne i skala wpływu. (Dark Reading)
Idź do oryginalnego materiału