Il 3 dicembre il team di React ha pubblicato le correzioni per la CVE-2025-55182, una vulnerabilità con il punteggio massimo, 10, nei React Server Components. L’hanno già soprannominata React2Shell, con un richiamo voluto a Log4Shell, e il paragone non è esagerato: basta una sola richiesta HTTP costruita ad arte, senza credenziali, per eseguire codice sul server.
I Server Components usano un protocollo interno per scambiare dati tra browser e server. Nel ricostruire i dati ricevuti, il server non ne verificava a sufficienza la struttura, e un attaccante può sfruttarlo per fargli eseguire codice arbitrario. Il punto che molti sottovalutano è questo: un’applicazione può essere vulnerabile anche se non definisce esplicitamente funzioni server. Basta che supporti i Server Components.
Chi deve aggiornare
- React 19.0, 19.1.0, 19.1.1 e 19.2.0, nei pacchetti
react-server-dom-webpack,react-server-dom-parcelereact-server-dom-turbopack; versioni corrette 19.0.1, 19.1.2 e 19.2.1. - Next.js 15.x e 16.x con App Router; versioni corrette 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 e 16.0.7.
- Altri framework e plugin che includono l’implementazione server di React, come React Router in modalità RSC, Waku e i plugin RSC per Vite e Parcel.
Sono fuori pericolo Next.js 13 e 14 stabili, le applicazioni che usano solo il Pages Router e le app React solo lato client.
Nel giro di poche ore dalla pubblicazione sono comparsi i primi tentativi di sfruttamento, anche da parte di gruppi legati alla Cina, e poco dopo exploit pubblici funzionanti. Per ora gli attaccanti installano soprattutto programmi per minare criptovalute e backdoor. Le autorità statunitensi hanno aggiunto la falla all’elenco di quelle sfruttate attivamente.
Controlla le versioni di react, react-dom, dei pacchetti react-server-dom-* e di next, comprese le dipendenze indirette, che sono quelle che sfuggono. Poi aggiorna, ricompila e ridistribuisci: modificare il file delle dipendenze senza un nuovo deploy non protegge nulla. Le regole dei firewall applicativi comprano tempo, non sostituiscono la correzione.
Sui server, cerca processi anomali avviati da Node.js, consumi di CPU insoliti e connessioni in uscita sospette. Se l’applicazione è rimasta esposta senza aggiornamento in questi giorni, parti dall’ipotesi peggiore e ruota le variabili d’ambiente e i segreti che vi erano salvati.



