React2Shell — CVE-2025-55182 — RCE risks

React2Shell: CVE-2025-55182 un Next.js RCE risks

TL; DR

React2Shell (CVE-2025-55182) rada kritisku RCE risks pāri React servera komponenti (RSC) un sistēmas, kas tās iestrādā, tostarp Next.jsJo ievainojamība mīt iekšienē RSC serializācijas un deserializācijas slānī uzbrucēji var nosūtīt izstrādātu HTTP pieprasījumu un aktivizēt neautentificēta attālā koda izpilde, pat ja komandas izmanto noklusējuma ietvara konfigurācijas. Next.js pieteikumi ir visvairāk pakļauti riskam, jo ​​tie pieņem un apstrādā Reaģēt lidojumam pēc noklusējuma izmanto HTTP.

Kļūda ietekmē vairākas versijas React servera pakotnes, un uzbrucējiem nav nepieciešama pielāgota lietojumprogrammu loģika, lai to izmantotu. Drošības pētnieki uzrāda gandrīz 100% uzticamību, un agrīnās skenēšanas atklāj, ka daudzas mākoņvides ir neaizsargātas Next.js gadījumi. Komandām nekavējoties jāveic ielāpi un apstiprināt visu savu ekosistēmu, lai samazinātu React2Shell (CVE-2025-55182) RCE risks.

Kritiska ievainojamība, par kuru 29. novembrī tika ziņots, izmantojot Meta kļūdu meklēšanas programmu, ir izraisījusi steidzamu reaģēšanu visā JavaScript ekosistēmā.

Norobežota CVE-2025-55182, kas tika atklāts 3. decembrī un tagad tiek dēvēts par React2Shell ir ārkārtīgi nopietna ievainojamība, kas ietekmē React servera komponenti kā arī ietvarstruktūras, kas tās ietver. Sākotnēji tika piešķirts atsevišķs Next.js ievainojamības identifikators (CVE-2025-66478), bet NVD vēlāk to apvienoja primārajā React CVE kā dublikātu.

Pamatproblēma ir tā pati — nedroša serializētu RSC vērtumu apstrāde, ko var aktivizēt, izmantojot HTTP pieprasījumu. Tas paver iespēju ļaunprātīgam spēlētājam nosūtīt manipulētu HTTP pieprasījumu, kā rezultātā serverī tiek palaists patvaļīgs JavaScript kods pēc tam, kad tas ir deserializēts ar React.

CVE-2025-55182 pārskats

React Server komponenti ir dziļi integrēti mūsdienu sistēmās un daudzos gadījumos ir iespējoti pēc noklusējuma. Tā dēļ lietojumprogrammas var tikt pakļautas React2Shell (CVE-2025-55182) pat ja tie nekad skaidri nedefinē servera funkcijas galapunktu. RSC ieviešana joprojām pastāv, un ar to vien pietiek, lai aktivizētu ievainojamus koda ceļus un radītu ievērojamu RCE risks.

Trūkums izriet no tā, kā React Flight protokolsl apstrādā noteiktas strukturētas vērtās slodzes. Vecākas versijas mēģināja iziet cauri vērtajā slodzē norādītajiem objektu ceļiem, nepārbaudot, vai struktūra ir derīga vai gaidīta. Uzbrucējs varētu manipulēt ar šo procesu un galu galā panākt koda izpildi serverī. Nav nepieciešama autentifikācija, īpaša konfigurācija un lietotnei specifiska loģika. Tā kā problēma pastāv jau gatavās konfigurācijās, standard izvietojumi ir pieejami bez jebkādiem neparastiem nosacījumiem.

Ekspluatācija notiek, kad uzbrucēji nosūta ļaunprātīgus HTTP POST pieprasījumus, kas ļaunprātīgi izmanto “vm.runInThisContext"mehānismu, izmantojot servera darbības". Lai gan React tieši neatklāj neaizsargāto galapunktu, Next.js to dara, radot īstu attālā uzbrukuma vektoru. 

Next.js pieņem Flight vērtumus no jebkura pieprasījuma, apstrādā tos bez pienācīgas validācijas un nodod React deserializatoram. Sistēma šos ārējos ievades datus uzskata par uzticamiem, ļaujot uzbrucējiem sasniegt attālo kodu izpildi caur publiski pieejamiem galapunktiem ar pilnām Node.js procesa privilēģijām mērķa serverī. 

Nopietnība ievērojami palielinās, jo noklusējuma konfigurācijas joprojām ir neaizsargātas pret React2Shell (CVE-2025-55182) un rezultātā RCE risks. standard Next.js lietojumprogramma, ko izveidojat ar create-next-app pakļauj sevi riskam, neprasot pielāgotu kodu vai konfigurācijas izmaiņas. Drošības pētnieki apstiprina gandrīz 100% ekspluatācijas uzticamību un ziņo, ka 39% mākoņvidēs darbojas neaizsargātas instances, savukārt 44% no visām vidēm darbojas publiski neaizsargātas Next.js lietojumprogrammas, kuras ietekmē React2Shell.

Izpratne par iedarbību uz React2Shell

Ievainojamās versijas aptver vairākus laidienus:

Komponents Ietekmētās versijas
react-server-dom-webpack 19.0, 19.1.0, 19.1.1, 19.2.0
react-server-dom-pakete 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

Tā kā daudzi ietvari kodolā iestrādā RSC atbalstu, lietojumprogrammas bieži vien neapzināti manto ievainojamu kodu. Jebkurš ietvars vai pakotņu veidotājs, kas nodrošina šīs pakotnes, var pakļaut lietojumprogrammu React2Shell (CVE-2025-55182) un tā RCE riskam. Tas ietver:

  • Next.js (lietotnes maršrutētājs)
  • React Router RSC priekšskatījums
  • Vite RSC spraudnis
  • Sūtījumu RSC spraudnis
  • Redwood SDK
  • Vaku
  • EXPO

Īpaši ietekmēts ir Next.js, jo tas pēc noklusējuma izmanto ar RSC saistītus galapunktus, izmantojot HTTP. Versijas, kas sākas ar 14.3.0 kanārijputniņu versijas, kā arī lielākā daļa 15.x un agri 16.x laidieni, satur ievainojamu ieviešanu. Ikviens, kas izmanto canary 14.3.0-kanārijputniņš.77 vai vēlāk vajadzētu atgriezties pie stabila 14.x versija atzars, līdz tiek publicēta ielāpotā kanārijputniņu versija.

Ielāpotās Next.js versijas ietvert:

Komponents Ielāpotās versijas
Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7

Publiski piekļuves punkti (PoC) un uzticama noteikšana

Pēc ievainojamības atklāšanas sāka izplatīties daudzi it kā koncepcijas pierādījumi. Daudzi no tiem bija vai nu neprecīzi, vai arī balstījās uz kļūdainiem pieņēmumiem. Sākotnējais ievainojamības autors Laklans Deividsons publiski apstiprināja react2shell ka cirkulējošie GitHub PoC neatbilst ekspluatējumam, kas privāti tika kopīgots ar React/Next.js uzturētājiem un sniedza savu pašu PoC

Galvenā problēma ar agrīniem publiskiem mēģinājumiem ir nespēja atzīt, ka ekspluatācija gūst panākumus pret standard Next.js izvietošana bez īpašas lietojumprogrammu loģikas vai servera puses funkciju klātbūtnes.

Drošības pētnieki no vairākām organizācijām ir uzsvēruši, ka ievainojamības atklāšanai ir nepieciešams vairāk nekā tikai noteikt, vai ir RSC. Assetnote komanda publicēja uzticama noteikšanas metode un skeneris spējīgs apstiprināt problēmu, neizmantojot nekādu izmantošanas loģiku. Metasploit drīz būs pieejams pieejams izmantojums arī šīs ievainojamības dēļ. 

Noteikšanas pieeja izmanto to, kā React Server apstrādā objektu īpašību atsauces, izmantojot kolu atdalītājus elementos. ReactFlightClientConfigBundlerWebpack.js/requireModule() funkcija. Kad neaizsargātās versijas apstrādā speciāli strukturētu daudzdaļīgu lietderīgo slodzi, kas mēģina šķērsot neesošus ligzdotu objektu ceļus, tās izraisa paredzamas kļūdu atbildes. Diagnostikas pieprasījums nosūta atsauces modeli, piemēram, `$1:a:a` savienots pārī ar tukšu objektu. Neaizsargātās ieviešanas mēģina to atrisināt kā ligzdota rekvizīta piekļuvi nedefinētai vērtībai, kā rezultātā rodas izņēmums. Serveris atgriež 500 statusu ar atšķirīgu kļūdas kopsavilkuma modeli atbildes pamattekstā. 

Nekavējoši pasākumi organizācijām, kas saskaras ar React2Shell (CVE-2025-55182) un RCE risku

Veiciet visaptverošu koda bāzes un izvietoto lietojumprogrammu skenēšanu lai atrastu neaizsargātas pakotņu versijas. Pievērsiet īpašu uzmanību tiešām React servera pakotņu atkarībām, ietvara līmeņa RSC implementācijām (Next.js, Waku, Redwood utt.), lietojumprogrammām, kas veidotas ar `create-next-app` vai līdzīgiem sastatņu rīkiem, un konteinerizētām lietojumprogrammām, kas var saturēt novecojušus bāzes attēlus.

Programmatūras kompozīcijas analīze (SCA) rīki, piemēram, Ksigēni SCA var automātiski atklāt ietekmētās atkarības visā jūsu programmatūras inventārā. 

Nekavējoties ielāps:

Atjauninājums uz ielāpu versijām, piemēram, 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) un visām ietvara pakotnēm, kas ietver RSC. Šie atjauninājumi ievieš stingru RSC lietderīgās slodzes apstrādes validāciju un novērš nedrošu īpašību atsauču atcelšanu, kas ļauj izmantot ļaunprātīgu izmantošanu. 

Automatizēti labošanas rīki, piemēram, Xygeni automātiskās labošanas funkcija, var paātrināt procesu lielās koda bāzēs.

Ieviest pagaidu WAF aizsardzību:

Kamēr ielāpi tiek izplatīti jūsu izvietošanas laikā pipeline, aktivizējiet tīmekļa lietojumprogrammu ugunsmūra noteikumus tūlītējai aizsardzībai. Lielākie mākoņpakalpojumu sniedzēji ir izlaiduši ārkārtas noteikumu kopas, CloudflareAutomātiska aizsardzība visiem līmeņiem, kad tiek izmantota starpniekservera React datplūsma, kā arī AWS, Akamai, Fastly, Google mākonis ir pieejami līdzīgi aizsardzības noteikumi. Nekavējoties iespējojiet šīs vadīklas, lai pārejas periodā izveidotu aizsargslāni.

Aizdomīgas HTTP datplūsmas uzraudzība:

Konfigurējiet reģistrēšanu un brīdināšanu par ekspluatācijas mēģinājumu indikatoriem: nepareizi veidotas vai negaidītas RSC Flight protokola vērtslāņas, neparasti 500 kļūdu modeļi RSC galapunktos, POST pieprasījumi ar aizdomīgiem `Next-Action` vai `Next-Router-State-Tree` galvenēm, atkārtoti pieprasījumi uz `/_next/` ceļiem ar daudzdaļīgām vērtslāņa vērtām kravām.

Pārbaudiet programmatūras materiālu sarakstu:

Daudzi ietvari RSC atkarības apvieno caurspīdīgi, padarot tās neredzamas virsmas līmeņa atkarību pārskatos. Izpētiet savu pilno SBOM lai nodrošinātu: Nav saglabājušās pārejošas atkarības no neaizsargātām React servera pakotnēm, ietvara atjauninājumi nav netīšām ieviesuši vecākas RSC implementācijas.

Noslēguma Domas

React2Shell ir viena no nopietnākajām JavaScript ekosistēmas ievainojamībām pēdējos gados nevis tāpēc, ka šī ievainojamības izmantošanas veids ir sarežģīts, bet gan tāpēc, ka RSC ir tik dziļi iesakņojies mūsdienu rīkos. Tagad, kad ielāpi ir pieejami visā ekosistēmā, komandām pēc iespējas ātrāk jāievieš jauninājumi ražošanas vidē.

Ja jūsu lietojumprogramma tieši vai netieši izmanto React servera funkcijas, šī ievainojamība ir jāuzskata par prioritāru labojumu.

sca-tools-software-composition-analysis-tools
Prioritizējiet, novērsiet un aizsargājiet savus programmatūras riskus
Iegūstiet savu bezmaksas kontu.
Nepieciešama kredītkarte.

Nodrošiniet programmatūras izstrādi un piegādi

ar Xygeni produktu komplektu