V serverových komponentech webového frameworku React (RSC, React Server Components) byla odstraněna zranitelnost (CVE-2025-55182), která umožňovala odesláním požadavku na serverový zpracovatel provést libovolný kód na serveru. Zranitelnosti byla přidělena kritická úroveň nebezpečí (10 z 10). Zranitelnost se projevuje v experimentálních komponentech react-server-dom-webpack, react-server-dom-parcel a react-server-dom-turbopack, které se používají k provádění funkcí a vytváření uživatelských rozhraní na serveru, nikoliv na straně klienta.
Problém je způsoben neoprávněnou deserializací dat získaných v HTTP požadavcích na serverové zpracovatele. Zpracovatelé „vm#runInThisContext“, „vm#runInNewContext“, „child_process#execFileSync“ a „child_process#execSync“ lze použít k spuštění příkazů v systému nebo provedení JavaScript kódu v kontextu aktuálního procesu (pro obcházení izolace sandboxu). Je také možné použít zpracovatele „fs#readFileSync“ a „fs#writeFileSync“ pro čtení a zápis libovolných souborů na serveru, jak dovolují aktuální práva přístupu. Pro útok není vyžadována autentizace. Je k dispozici prototyp exploitu. # Spuštění příkazu whoami curl -X POST http://localhost:3002/formaction \ -F ‘$ACTION_REF_0=’ \ -F ‘$ACTION_0:0={"id":"child_process#execSync","bound":["whoami"]}’ # Provádění JavaScript kódu 1+1 curl -X POST http://localhost:3002/formaction \ -F ‘$ACTION_REF_0=’ \ -F ‘$ACTION_0:0={"id":"vm#runInThisContext","bound":["1+1"]}’ # Čtení souboru /etc/passwd curl -X POST http://localhost:3002/formaction \ -F ‘$ACTION_REF_0=’ \ -F ‘$ACTION_0:0={"id":"fs#readFileSync","bound":["/etc/passwd","utf8"]}’
Vystavení systémů zranitelnostem závisí na použití zranitelných serverových komponent react-server-dom-webpack, react-server-dom-parcel a react-server-dom-turbopack. Aplikace, které nepoužívají react-server, zranitelnost neovlivňuje. Rozsah pokrytí zranitelností pracovních systémů, ve kterých se používá React, zatím není jasný. Na jedné straně je React jedním z nejpopulárnějších webových frameworků (používá se přibližně na 6% webových stránek), a zranitelné komponenty se vyvíjejí hlavně v hlavním repozitáři a jsou součástí vydání. Zranitelné komponenty jsou také podporovány v rámcích založených na Reactu, jako je Next.js a react-router. Podle údajů společnosti Wiz Research byly zranitelné instance nalezeny v 39% analyzovaných cloudových prostředích.
Na druhé straně generace obsahu na serveru přes React Server Komponenty nejsou často používanou funkcí (většina React stránek vykresluje rozhraní pouze na straně klienta), a zranitelné komponenty jsou označeny jako experimentální a nezaručují správnou funkčnost. Tyto komponenty mají relativně malé množství přímých stažení z repozitáře NPM: react-server-dom-webpack — 670 tisíc týdně, react-server-dom-parcel — 7 tisíc a react-server-dom-turbopack — 32 tisíc, pro srovnání balíček NPM React má 45 milionů stažení týdně.
Zranitelnost existuje ve verzích React 9.0.0, 19.1.0, 19.1.1 a 19.2.0, a byla odstraněna v aktualizacích React 19.0.1, 19.1.2 a 19.2.1. Zranitelné komponenty jsou také používány v balíčcích Next.js (16 milionů stažení týdně) react-router (20 milionů stažení týdně), waku, @parcel/rsc, @vitejs/plugin-rsc a rwsdk.
Ve frameworku Next.js zranitelnost (CVE-2025-66478) ovlivňuje aplikace využívající App Router a větve Next.js 15.x a 16.x. Tvrdí se, že zranitelnost se projevuje v konfiguraci Next.js ve výchozím nastavení (standardní aplikace vytvořená nástrojem create-next-app je vystavena útoku). Uživatelům se doporučuje co nejdříve nainstalovat aktualizaci Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 nebo 16.0.7.
Zdroj: opennet.ru
