React2Shell - CVE-2025-55182 - Rreziku RCE

React2Shell: CVE-2025-55182 dhe rreziku RCE i Next.js

TL; DR

React2Shell (CVE-2025-55182) krijon një gjendje kritike Rreziku i RCE-së nëpër Komponentët e Serverit React (RSC) dhe kornizat që i përfshijnë ato, duke përfshirë Tjetra.jsSepse cenueshmëria jeton brenda RSC shtresa e serializimit dhe deserializimit, sulmuesit mund të dërgojnë një kërkesë HTTP të hartuar dhe të shkaktojnë ekzekutim i kodit në distancë i paautentifikuar, edhe kur ekipet ekzekutojnë konfigurime të parazgjedhura të kornizës. Tjetra.js aplikacionet përballen me ekspozimin më të lartë sepse ato pranojnë dhe përpunojnë React Flight ngarkesat mbi HTTP si parazgjedhje.

Gabimi prek versione të shumta të Paketat e serverit React, dhe sulmuesit nuk kanë nevojë për logjikë të personalizuar të aplikacionit për ta shfrytëzuar atë. Studiuesit e sigurisë tregojnë besueshmëri gati 100%, dhe skanimet e hershme zbulojnë se shumë mjedise cloud janë të cenueshme. Tjetra.js instancat. Ekipet duhet të riparohen menjëherë dhe të vërtetojnë ekosistemin e tyre të plotë për të zvogëluar Rreziku RCE i React2Shell (CVE-2025-55182).

Një dobësi kritike e raportuar përmes programit të shpërblimeve për gabime të Meta-s më 29 nëntor ka shkaktuar përgjigje urgjente në të gjithë ekosistemin JavaScript.

caktuar CVE-2025-55182, i zbuluar më 3 dhjetor, tani i referuar si React2Shell është një cenueshmëri me ashpërsi maksimale që ndikon Komponentët e React Server së bashku me kornizat që i përfshijnë ato. Fillimisht, iu caktua një identifikues i veçantë i dobësive Next.js (CVE-2025-66478), por NVD më vonë e konsolidoi atë në CVE primare të React si një hyrje të dyfishtë.

Problemi themelor është i njëjti, trajtimi i pasigurt i ngarkesave të serializuara RSC që mund të aktivizohen përmes një kërkese HTTP. Kjo i hap derën një aktori keqdashës për të dërguar një kërkesë HTTP të manipuluar që rezulton në ekzekutimin arbitrar të JavaScript në server pasi është... deserializuar nga React.

Përmbledhje e CVE-2025-55182

Komponentët e React Server janë të integruar thellësisht në kornizat moderne dhe në shumë raste janë të aktivizuara si parazgjedhje. Për shkak të kësaj, aplikacionet mund të ekspozohen ndaj React2Shell (CVE-2025-55182) edhe nëse ata nuk e përcaktojnë kurrë në mënyrë të qartë një pikë fundore të Funksionit të Serverit. Implementimi i RSC është ende i pranishëm, dhe vetëm kjo është e mjaftueshme për të aktivizuar shtigje kodi të cenueshme dhe për të krijuar një të konsiderueshme. Rreziku i RCE-së.

Defekti rrjedh nga mënyra se si Protokolli i React Flightl përpunon ngarkesa të caktuara të strukturuara. Versionet më të vjetra u përpoqën të ecnin nëpër shtigjet e objekteve të dhëna në ngarkesë pa verifikuar nëse struktura ishte e vlefshme ose e pritshme. Një sulmues mund të manipulonte këtë proces dhe në fund të fundit të arrinte ekzekutimin e kodit në server. Nuk kërkohet autentifikim, asnjë konfigurim i veçantë dhe asnjë logjikë specifike për aplikacionin. Meqenëse problemi ekziston në konfigurimet e gatshme, standard Vendosjet ekspozohen pa pasur nevojë për kushte të pazakonta.

Shfrytëzimi ndodh kur sulmuesit dërgojnë kërkesa keqdashëse HTTP POST që abuzojnë me ""vm.runInThisContext"mekanizëm përmes Veprimeve të Serverit. Ndërsa React nuk e ekspozon drejtpërdrejt pikën fundore të cenueshme, Next.js e bën, duke krijuar një vektor të vërtetë sulmi në distancë. 

Next.js pranon ngarkesa Flight nga çdo kërkesë, i përpunon ato pa validimin e duhur dhe ia kalon ato deserializuesit të React. Sistemi i trajton këto të dhëna të jashtme si të besueshme, duke u mundësuar sulmuesve të arrijnë ekzekutimin e kodit të largët përmes pikave fundore të aksesueshme publikisht me privilegje të plota të procesit Node.js në serverin e synuar. 

Ashpërsia rritet ndjeshëm sepse konfigurimet e parazgjedhura mbeten të ndjeshme ndaj React2Shell (CVE-2025-55182) dhe rezultati Rreziku i RCE-së. Një standard Aplikacioni Next.js që krijoni me create-next-app ekspozohet pa kërkuar ndonjë ndryshim të kodit ose konfigurimit të personalizuar. Studiuesit e sigurisë konfirmojnë besueshmërinë e shfrytëzimit pothuajse 100% dhe raportojnë se 39% e mjediseve cloud përdorin instanca të cenueshme, ndërsa 44% e të gjitha mjediseve përdorin aplikacione Next.js të ekspozuara publikisht të prekura nga React2Shell.

Kuptimi i ekspozimit ndaj React2Shell

Versionet e cenueshme përfshijnë disa versione:

KomponentVersionet e prekura
react-server-dom-webpack19.0, 19.1.0, 19.1.1, 19.2.0
react-server-dom-parcel19.0, 19.1.0, 19.1.1, 19.2.0
react-server-dom-turbopack19.0, 19.1.0, 19.1.1, 19.2.0

Meqenëse shumë framework-e përfshijnë mbështetjen RSC në thelb, aplikacionet shpesh trashëgojnë kodin e cenueshëm pa e kuptuar. Çdo framework ose pako që ofron këto paketa mund ta ekspozojë aplikacionin ndaj React2Shell (CVE-2025-55182) dhe rrezikut të tij RCE. Kjo përfshin:

  • Next.js (Ruteri i aplikacionit)
  • Pamje paraprake e React Router RSC
  • Shtojca Vite RSC
  • Shtojca Parcel RSC
  • SDK i Redwood-it
  • Waku
  • Expo

Next.js është veçanërisht i prekur sepse përdor pikat fundore të lidhura me RSC mbi HTTP si parazgjedhje. Versionet që fillojnë me Ndërtimet 14.3.0 të Canary, së bashku me shumicën 15.x dhe herët 16.x lëshimet, përmbajnë implementimin e cenueshëm. Kushdo që përdor canary 14.3.0-kanari.77 ose më vonë duhet kthehem te stabile 14.x degë derisa të publikohet një version i patch-uar i "canary".

Versionet e Next.js të patcheduara përfshin:

KomponentVersione të Patched
Tjetra.js15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7

PoC-të Publike dhe Zbulimi i Besueshëm

Pas zbulimit të cenueshmërisë, filluan të qarkullonin shumë koncepte të supozuara si prova të ekzistencës. Shumë prej tyre ishin ose të pasakta ose të bazuara në supozime të gabuara. Autori origjinal i cenueshmërisë, Lachlan Davidson, e konfirmoi publikisht më react2shell që PoC-të GitHub që qarkullojnë nuk përputhen me shfrytëzimin e ndarë privatisht me mirëmbajtësit e React/Next.js dhe me kusht që ai PoC-në e vet

Një problem i madh me përpjekjet e hershme publike është dështimi i tyre për të njohur se shfrytëzimi ka sukses kundër standard Vendosjet e Next.js pa kërkuar që logjika specifike e aplikacionit ose funksionet nga ana e serverit të jenë të pranishme.

Studiuesit e sigurisë nga organizata të shumta kanë theksuar se zbulimi i dobësisë kërkon më shumë sesa thjesht identifikimin nëse RSC është i pranishëm. Ekipi i Assetnote publikoi një metodë e besueshme e zbulimit dhe një skaner i aftë të konfirmojë problemin pa përdorur ndonjë logjikë shfrytëzimi. Metasploit së shpejti do të ketë një shfrytëzim i disponueshëm edhe për këtë cenueshmëri. 

Qasja e zbulimit shfrytëzon mënyrën se si React Server trajton referencat e vetive të objektit duke përdorur ndarës me dy pika brenda ReactFlightClientConfigBundlerWebpack.js/requireModule() funksion. Kur versionet e cenueshme përpunojnë një ngarkesë shumëpjesëshe të strukturuar posaçërisht që përpiqet të përshkojë shtigje joekzistente të objekteve të ndërthurura, ato shkaktojnë përgjigje të parashikueshme gabimi. Një kërkesë diagnostikuese dërgon një model referimi si `$1:a:a` i çiftëzuar me një objekt bosh. Implementimet e cenueshme përpiqen ta zgjidhin këtë si akses në pronën e ndërthurur në një vlerë të papërcaktuar, duke rezultuar në një përjashtim. Serveri kthen një status 500 me një model dallues të përmbledhjes së gabimit në trupin e përgjigjes. 

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]]; }  

Veprime të menjëhershme për organizatat që përballen me React2Shell (CVE-2025-55182) dhe rrezikun RCE

Kryeni një skanim gjithëpërfshirës të bazës së kodit tuaj dhe aplikacioneve të vendosura për të gjetur versionet e paketave të cenueshme. Kushtojini vëmendje të veçantë varësive të drejtpërdrejta të paketave të serverit React, implementimeve RSC në nivel Framework (Next.js, Waku, Redwood, etj.), aplikacioneve të ndërtuara me `create-next-app` ose mjete të ngjashme skeletimi dhe aplikacioneve të kontejnerizuara që mund të përmbajnë imazhe bazë të vjetruara.

Analiza e Përbërjes së Softuerit (SCA) mjete si Xygeni's SCA mund të zbulojë automatikisht varësitë e prekura në të gjithë inventarin tuaj të softuerit. 

Patch menjëherë:

Përditësim në versionet e patch-uara si 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) dhe çdo paketë framework që përfshin RSC. Këto përditësime prezantojnë validim të rreptë për trajtimin e ngarkesës RSC dhe parandalojnë heqjen e pasigurt të referencimit të vetive që mundëson shfrytëzimin. 

Mjete të automatizuara për korrigjim, të tilla si Funksioni i korrigjimit automatik të Xygeni-t, mund ta përshpejtojë procesin nëpër baza të mëdha kodesh.

Zbatoni Mbrojtje të Përkohshme WAF:

Ndërsa patch-et përhapen përmes vendosjes suaj pipeline, aktivizoni rregullat e Firewall-it të Aplikacionit Web për mbrojtje të menjëhershme. Ofruesit kryesorë të cloud-it kanë publikuar grupe rregullash emergjente, CloudFlareMbrojtje automatike për të gjitha nivelet kur trafiku React është i proksiuar, si dhe AWS, Akamai, Fastly, Google Cloud kanë rregulla të ngjashme mbrojtëse në dispozicion. Aktivizoni këto kontrolle menjëherë për të krijuar një shtresë mbrojtëse gjatë periudhës së tranzicionit.

Monitoroni për trafik të dyshimtë HTTP:

Konfiguroni regjistrimin dhe njoftimin për treguesit e përpjekjeve të shfrytëzimit: Ngarkesa të gabuara ose të papritura të protokollit të fluturimit RSC, modele të pazakonta prej 500 gabimesh në pikat fundore të RSC, kërkesa POST me tituj të dyshimtë `Next-Action` ose `Next-Router-State-Tree`, kërkesa të përsëritura në shtigje `/_next/` me ngarkesa shumëpjesëshe.

Verifikoni Listën e Materialeve të Softuerit tuaj:

Shumë korniza i paketojnë varësitë RSC në mënyrë transparente, duke i bërë ato të padukshme në rishikimet e varësive në nivel sipërfaqësor. Shqyrtoni të plotën tuaj. SBOM për të siguruar: Nuk mbeten varësi kalimtare nga paketat e ndjeshme të serverit React, dhe përditësimet e kornizës nuk kanë futur pa dashje implementime më të vjetra të RSC.

Mendime mbylljes

React2Shell renditet ndër dobësitë më serioze të ekosistemit JavaScript në vitet e fundit, jo sepse shfrytëzimi është kompleks, por sepse RSC funksionon shumë thellë në mjetet e sotme. Tani që patch-et janë të disponueshme në të gjithë ekosistemin, ekipet duhet të shtyjnë përmirësimet në prodhim sa më shpejt të jetë e mundur.

Nëse aplikacioni juaj përdor veçoritë e serverit të React, qoftë drejtpërdrejt apo tërthorazi, duhet ta trajtoni këtë dobësi si një rregullim me përparësi të lartë.

mjetet-e-për-përbërjes-së-softuerit-sca-tools
Përparësoni, korrigjoni dhe siguroni rreziqet e softuerit tuaj
Merrni Llogarinë tuaj Falas.
Nuk kërkohet kartë krediti.

Siguroni Zhvillimin dhe Ofrimin e Softuerit tuaj

me Xygeni Product Suite