React2Shell: vulnerabilitate RCE critică în React / Next.js descoperită – actualizează imediat!

React2Shell: vulnerabilitate RCE critică în React / Next.js descoperită – actualizează imediat!

Echipa Hackout.ro lucrează activ în aceste zile pentru a identifica website‑urile care folosesc tehnologia afectată, iar atunci când descoperim astfel de cazuri încercăm să contactăm proprietarii prin email pentru a-i informa.

Dacă citești acest mesaj și ai primit deja un email de la noi, găsești mai jos ce trebuie să faci și cum să înțelegi situația. Vă rugăm să distribuiți mai departe aceste resurse, pentru a ajuta la limitarea impactului vulnerabilității.

Introducere

Pe 3 decembrie 2025, echipa React a publicat un avertisment de securitate privind o vulnerabilitate gravă (scor CVSS 10.0) în implementarea server-side a React Server Components (RSC). Vulnerabilitatea, cunoscută sub numele „React2Shell”, permite executarea de cod arbitrar pe servere  fără autentificare, printr-o simplă cerere HTTP POST.

Aceasta afectează nu doar React, ci şi framework-uri ce se bazează pe RSC, în special Next.js, ceea ce o face una dintre cele mai serioase amenințări recente pentru aplicațiile web moderne.

Ce este React2Shell / CVE-2025-55182 și CVE-2025-66478

  • Identificatori: CVE-2025-55182 pentru React, respectiv CVE-2025-66478 pentru Next.js.

  • Severitate: scor maxim, CVSS 10.0 – vulnerabilitate „critical” / „maximum severity”.

  • Componente / versiuni vulnerabile:

    • Pentru React: pachetele react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack în versiunile 19.0.0, 19.1.0, 19.1.1, și 19.2.0. 

    • Pentru Next.js (App Router): versiunile 15.x și 16.x – precum și versiuni canary începând cu 14.3.0-canary.77. 

  • Atenție: chiar dacă aplicația ta nu definește explicit “Server Functions”, dacă folosește React Server Components sau o versiune Next.js afectată, este potențial vulnerabilă.

Impactul și riscul existent

  • Prin compromiterea serverului, un atacator ar putea avea acces complet la filesystem, baze de date, credențiale interne, instaleze backdoor-uri, malware sau să exfiltreze date sensibile. 
  • Potențialul de exploatare este foarte ridicat – chiar un “hello world” creat cu create-next-app, în varianta de producție, fără modificări extra, poate fi vulnerabil.
  • Conform estimărilor din industria cloud, o proporție semnificativă de medii (“workloads”) în producție rulează React/Next.js – ceea ce sugerează că expunerea este largă.

Cum poți testa aplicația ta dacă este vulnerabilă?

Recomandări — ce să faci acum

  1. Inventariază toate aplicațiile care folosesc React / Next.js / RSC în organizația ta, verifică package.json, package-lock.json / yarn.lock ca să identifici pachetele vulnerabile (react-server-dom-*, Next.js 15.x/16.x, canary 14.3.0+ etc.).

  2. Actualizează imediat – pachetele cu patch sunt deja disponibile:

    1. React: versiunile 19.0.1, 19.1.2, 19.2.1 conțin fix-ul. 

    2. Next.js: versiunile fixate sunt 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 și 16.0.7. 

  3. Dacă nu poți patch-ui imediat: dezactivează temporar „Server Functions” / RSC . 

  4.  Implementează WAF (firewall aplicațional web) care filtrează tiparele cunoscute de exploit.

Concluzie

Vulnerabilitatea React2Shell (CVE-2025-55182 / CVE-2025-66478) este o avertizare serioasă pentru toți cei care folosesc React/Next.js cu Server Components. Din fericire, patch-urile există deja – dar timpul joacă împotrivă: fiecare moment fără actualizare crește riscul de compromis. E momentul să verifici toate aplicațiile, să actualizezi, și să implementezi mecanisme de protecție suplimentare. Informarea la timp și acțiunea rapidă pot preveni un dezastru.

Facebook
Twitter
LinkedIn
Telegram
WhatsApp

Despre autor

Discuții

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Îți place securitate cibernetică?

Intră în comunitatea Hackout de pe Discord și inițiază discuții cu alți pasionați de cybersecurity. Aici postăm toate informațiile despre evenimente, CTFs, știri, joburi etc.