TL; DR
React2Shell (CVE-2025-55182) creează o critică Riscul RCE peste Componente React Server (RSC) și cadre care le integrează, inclusiv Next.jsDeoarece vulnerabilitatea se află în interiorul RSC stratul de serializare și deserializare, atacatorii pot trimite o cerere HTTP creată special și pot declanșa executarea codului de la distanță neautentificat, chiar și atunci când echipele rulează configurații implicite ale framework-ului. Next.js aplicațiile se confruntă cu cea mai mare expunere deoarece acceptă și procesează Reacționează la zbor sarcini utile prin HTTP în mod implicit.
Defectul afectează mai multe versiuni ale Pachete de server React...iar atacatorii nu au nevoie de logică personalizată a aplicațiilor pentru a o exploata. Cercetătorii în domeniul securității arată o fiabilitate de aproape 100%, iar scanările timpurii dezvăluie că multe medii cloud sunt vulnerabile. Next.js instanțe. Echipele trebuie să aplice imediat patch-ul și să își valideze întregul ecosistem pentru a reduce Risc RCE React2Shell (CVE-2025-55182).
O vulnerabilitate critică raportată prin programul de recompense pentru bug-uri Meta pe 29 noiembrie a declanșat răspunsuri urgente în întregul ecosistem JavaScript.
desemnat CVE-2025-55182, dezvăluită pe 3 decembrie, denumită acum React2Shell este o vulnerabilitate de severitate maximă care are impact Componente React Server împreună cu framework-urile care le încorporează. Inițial, a fost atribuit un identificator separat de vulnerabilitate Next.js (CVE-2025-66478), dar NVD l-a consolidat ulterior în React CVE-ul principal ca o intrare duplicată.
Problema de bază este aceeași gestionare nesigură a sarcinilor utile RSC serializate care pot fi declanșate printr-o cerere HTTP. Acest lucru deschide calea pentru ca un actor rău intenționat să trimită o cerere HTTP manipulată, ceea ce duce la rularea arbitrară a unui cod JavaScript pe server după ce a fost... deserializat de React.
CVE-2025-55182 Prezentare generală
Componentele React Server sunt profund integrate în framework-urile moderne și, în multe cazuri, sunt activate în mod implicit. Din această cauză, aplicațiile pot fi expuse la React2Shell (CVE-2025-55182) chiar dacă nu definesc niciodată explicit un punct final al funcției serverului. Implementarea RSC este încă prezentă, iar acest lucru este suficient pentru a activa căi de cod vulnerabile și a crea o creștere semnificativă a Riscul RCE.
Defectul provine din modul în care Protocolul React Flightl procesează anumite sarcini utile structurate. Versiunile mai vechi încercau să parcurgă căile obiectelor furnizate în sarcina utilă fără a verifica dacă structura era validă sau așteptată. Un atacator ar putea manipula acest proces și, în cele din urmă, ar putea ajunge la execuția codului pe server. Nu este necesară autentificare, configurație specială și logică specifică aplicației. Deoarece problema există în configurațiile predefinite, standard implementările sunt expuse fără a fi necesare condiții neobișnuite.
Exploatarea are loc atunci când atacatorii trimit cereri HTTP POST rău intenționate care abuzează de „vm.runInThisContext„mecanism” prin intermediul acțiunilor serverului. În timp ce React nu expune direct endpoint-ul vulnerabil, Next.js o face, creând un vector de atac la distanță autentic.
Next.js acceptă sarcini utile Flight de la orice cerere, le procesează fără validare corespunzătoare și le transmite deserializatorului React. Sistemul tratează aceste intrări externe ca fiind de încredere, permițând atacatorilor să obțină... executarea codului de la distanță prin puncte finale accesibile publicului cu privilegii complete de proces Node.js pe serverul țintă.
Severitatea crește semnificativ deoarece configurațiile implicite rămân vulnerabile la React2Shell (CVE-2025-55182) iar rezultatul Riscul RCE. O standard Aplicația Next.js pe care o creați cu create-next-app se expune fără a necesita modificări de cod personalizat sau de configurație. Cercetătorii în domeniul securității confirmă fiabilitatea exploatării de aproape 100% și raportează că 39% din mediile cloud rulează instanțe vulnerabile, în timp ce 44% din toate mediile rulează aplicații Next.js expuse public, afectate de React2Shell.
Înțelegerea expunerii la React2Shell
Versiunile vulnerabile acoperă mai multe versiuni:
| Component | Versiunile afectate |
|---|---|
| react-server-dom-webpack | 19.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-parcel | 19.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-turbopack | 19.0, 19.1.0, 19.1.1, 19.2.0 |
Deoarece multe framework-uri încorporează suport RSC în nucleu, aplicațiile moștenesc adesea codul vulnerabil fără să își dea seama. Orice framework sau bundler care livrează aceste pachete poate expune aplicația la React2Shell (CVE-2025-55182) și riscul RCE aferent. Aceasta include:
- Next.js (router de aplicații)
- Previzualizare React Router RSC
- Pluginul Vite RSC
- Plugin Parcel RSC
- SDK-ul Redwood
- waku
- Expoziţie
Next.js este afectat în mod special deoarece folosește în mod implicit endpoint-uri legate de RSC prin HTTP. Versiunile care încep cu Versiuni 14.3.0 Canary, împreună cu majoritatea 15.x și mai devreme 16.x versiuni, conțin implementarea vulnerabilă. Oricine rulează Canary 14.3.0-canary.77 sau mai târziu ar trebui reveni la versiunea stabilă 14.x ramificație până când este publicată o versiune Canary actualizată.
Versiuni Next.js actualizate include:
| Component | Versiuni actualizate |
|---|---|
| Next.js | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
PoC-uri publice și detectare fiabilă
În urma dezvăluirii vulnerabilității, numeroase presupuse dovezi de concept au început să circule. Multe dintre ele erau fie inexacte, fie se bazau pe presupuneri eronate. Autorul original al vulnerabilității, Lachlan Davidson, a confirmat public pe... react2shell că dovezile de concept GitHub care circulă nu corespund exploit-ului partajat privat cu administratorii React/Next.js și pe care i l-a furnizat propria propoziție de concept.
O problemă majoră a încercărilor publice timpurii este incapacitatea lor de a recunoaște faptul că exploatarea reușește împotriva standard Implementări Next.js fără a necesita prezența unei logici specifice a aplicației sau a unor funcții pe server.
Cercetătorii în domeniul securității din mai multe organizații au subliniat că detectarea vulnerabilității necesită mai mult decât simpla identificare a prezenței RSC. Echipa Assetnote a publicat un metodă de detectare fiabilă și scanerului capabil să confirme problema fără a utiliza nicio logică de exploatare. Metasploit va avea în curând un exploatare disponibilă și pentru această vulnerabilitate.
Abordarea de detectare valorifică modul în care React Server gestionează referințele la proprietățile obiectelor folosind delimitatori de două puncte în cadrul ReactFlightClientConfigBundlerWebpack.js/requireModule() funcție. Când versiunile vulnerabile procesează o sarcină utilă multiparte special structurată care încearcă să traverseze căi de obiecte imbricate inexistente, acestea declanșează răspunsuri de eroare previzibile. O solicitare de diagnosticare trimite un model de referință precum `$1:a:a` asociat cu un obiect gol. Implementările vulnerabile încearcă să rezolve acest lucru prin accesarea proprietăților imbricate pe o valoare nedefinită, rezultând o excepție. Serverul returnează o stare 500 cu un model distinct de rezumat al erorii în corpul răspunsului.
export function requireModule<T>(metadata: ClientReference<T>): T { let moduleExports = __webpack_require__(metadata[ID]); if (isAsyncImport(metadata)) { if (typeof moduleExports.then !== 'function') { // This wasn't a promise after all. } else if (moduleExports.status === 'fulfilled') { // This Promise should've been instrumented by preloadModule. moduleExports = moduleExports.value; } else { throw moduleExports.reason; } } if (metadata[NAME] === '*') { // This is a placeholder value that represents that the caller imported this // as a CommonJS module as is. return moduleExports; } if (metadata[NAME] === '') { // This is a placeholder value that represents that the caller accessed the // default property of this if it was an ESM interop module. return moduleExports.__esModule ? moduleExports.default : moduleExports; } return moduleExports[metadata[NAME]]; } Acțiuni imediate pentru organizațiile care se confruntă cu React2Shell (CVE-2025-55182) și riscul RCE
Efectuați o scanare completă a bazei de cod și a aplicațiilor implementate pentru a localiza versiunile vulnerabile ale pachetelor. Acordați o atenție deosebită dependențelor directe ale pachetelor serverului React, implementărilor RSC la nivel de Framework (Next.js, Waku, Redwood etc.), aplicațiilor construite cu `create-next-app` sau instrumente de scaffolding similare și aplicațiilor containerizate care pot conține imagini de bază învechite.
Analiza compoziției software (SCA) instrumente precum Xygeni SCA poate descoperi automat dependențele afectate în întregul inventar software.
Aplicați imediat patch-ul:
Actualizare pentru versiuni actualizate, cum ar fi React (19.0.1, 19.1.2, 19.2.1), Next.js (15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7) și orice pachete framework care includ RSC. Aceste actualizări introduc o validare strictă pentru gestionarea sarcinii utile RSC și previn dereferențierea nesigură a proprietăților care permite exploatarea.
Instrumente automate de remediere, cum ar fi Funcția de auto-remediere a Xygeni, poate accelera procesul pe baze de cod mari.
Implementați protecții temporare WAF:
În timp ce patch-urile se propagă prin implementare pipeline, activați regulile Firewall-ului pentru aplicații web pentru protecție imediată. Furnizorii majori de cloud au lansat seturi de reguli de urgență, CloudflareProtecție automată pentru toate nivelurile atunci când traficul React este transmis prin proxy, precum și AWS, Akamai, Fastly, Google Cloud aveți reguli defensive similare disponibile. Activați aceste controale imediat pentru a crea un strat protector în perioada de tranziție.
Monitorizați traficul HTTP suspect:
Configurați înregistrarea în jurnal și alertarea pentru indicatorii de încercări de exploatare: sarcini utile RSC Flight malformate sau neașteptate, modele neobișnuite de 500 de erori pe endpoint-urile RSC, solicitări POST cu antete suspecte „Next-Action” sau „Next-Router-State-Tree”, solicitări repetate către căi „/_next/” cu sarcini utile multiparte
Verificați lista de materiale a software-ului:
Multe framework-uri grupează dependențele RSC în mod transparent, făcându-le invizibile în revizuirile dependențelor la nivel superficial. Examinați-vă complet SBOM pentru a se asigura că: Nu există dependențe tranzitive de pachetele vulnerabile ale serverului React, actualizările framework-ului nu au introdus în mod accidental implementări RSC mai vechi.
Gânduri de închidere
React2Shell se numără printre cele mai grave vulnerabilități ale ecosistemului JavaScript din ultimii ani, nu pentru că exploatarea este complexă, ci pentru că RSC este atât de complexă în instrumentele actuale. Acum, că patch-urile sunt disponibile în întregul ecosistem, echipele trebuie să lanseze upgrade-urile în producție cât mai repede posibil.
Dacă aplicația ta utilizează funcțiile de server ale React, direct sau indirect, trebuie să tratezi această vulnerabilitate ca o remediere de prioritate maximă.






