React2Shell - CVE-2025-55182 - RCE-riski

React2Shell: CVE-2025-55182 ja Next.js RCE -riski

TL; DR

React2Shell (CVE-2025-55182) luo kriittisen RCE-riski poikki React-palvelinkomponentit (RSC) ja niitä sisältävät kehykset, mukaan lukien Next.jsKoska haavoittuvuus asuu sisällä RSC sarjoittelu- ja deserialisointikerroksen avulla hyökkääjät voivat lähettää muokatun HTTP-pyynnön ja laukaista sen todentamaton etäkoodin suoritus, jopa silloin, kun tiimit käyttävät oletuskehysmäärityksiä. Next.js hakemukset altistuvat eniten, koska ne hyväksyvät ja käsittelevät React Flight hyötykuormat oletuksena HTTP:n kautta.

Haitta vaikuttaa useisiin versioihin React-palvelinpaketit, eivätkä hyökkääjät tarvitse mukautettua sovelluslogiikkaa hyödyntääkseen sitä. Tietoturvatutkijat osoittavat lähes 100 %:n luotettavuuden, ja alustavat skannaukset paljastavat, että monet pilviympäristöt ovat haavoittuvaisia Next.js tapauksissa. Joukkueiden on korjattava välittömästi ja validoimaan koko ekosysteeminsä pienentääkseen React2Shell (CVE-2025-55182) RCE-riski.

Metan bug bounty -ohjelman kautta 29. marraskuuta ilmoitettu kriittinen haavoittuvuus on käynnistänyt kiireellisiä toimia JavaScript-ekosysteemissä.

nimetyt CVE-2025-55182, joka julkistettiin 3. joulukuuta ja jota nyt kutsutaan nimellä React2Shell on erittäin vakava haavoittuvuus, joka vaikuttaa React Server -komponentit sekä niitä sisältäviä kehyksiä. Aluksi sille annettiin erillinen Next.js-haavoittuvuustunniste (CVE-2025-66478), mutta NVD yhdisti sen myöhemmin ensisijaiseen React CVE:hen kaksoismerkintänä.

Pohjimmiltaan kyseessä on sama, HTTP-pyynnön kautta laukaistavien sarjallistettujen RSC-hyötykuormien turvaton käsittely. Tämä antaa pahantahtoiselle toimijalle mahdollisuuden lähettää manipuloituja HTTP-pyyntöjä, jotka johtavat mielivaltaisen JavaScriptin suorittamiseen palvelimella sen jälkeen, kun ne on... Reactin deserialisoima.

CVE-2025-55182 Yleiskatsaus

React Server -komponentit on integroitu syvästi nykyaikaisiin kehyksiin, ja monissa tapauksissa ne ovat oletusarvoisesti käytössä. Tästä johtuen sovellukset voivat altistua React2Shell (CVE-2025-55182) vaikka ne eivät koskaan eksplisiittisesti määrittäisi palvelinfunktion päätepistettä. RSC-toteutus on edelleen olemassa, ja se yksinään riittää aktivoimaan haavoittuvia koodipolkuja ja luomaan merkittävän RCE-riski.

Vika johtuu siitä, miten React Flight -protokollal käsittelee tiettyjä strukturoituja hyötykuormia. Vanhemmat versiot yrittivät kävellä hyötykuormassa annettujen objektipolkujen läpi varmistamatta, että rakenne oli kelvollinen tai odotettu. Hyökkääjä voi manipuloida tätä prosessia ja lopulta suorittaa koodia palvelimella. Ei todennusta, ei erityisiä asetuksia eikä sovelluskohtaista logiikkaa vaadita. Koska ongelma esiintyy valmiissa kokoonpanoissa, standard käyttöönotot paljastuvat ilman epätavallisia ehtoja.

Hyökkäys tapahtuu, kun hyökkääjät lähettävät haitallisia HTTP POST -pyyntöjä, jotka väärinkäyttävät "vm.runInThisContext”mekanismi Server Actionsin kautta. Vaikka React ei paljasta haavoittuvaa päätepistettä suoraan, Next.js tekee sen, luoden aidon etähyökkäysvektorin. 

Next.js hyväksyy Flight-hyötykuormat mistä tahansa pyynnöstä, käsittelee ne ilman asianmukaista validointia ja välittää ne Reactin deserialisoijalle. Järjestelmä käsittelee näitä ulkoisia syötteitä luotettavina, jolloin hyökkääjät voivat saavuttaa koodin etäsuorittaminen julkisesti saatavilla olevien päätepisteiden kautta täysillä Node.js-prosessioikeuksilla kohdepalvelimella. 

Vakavuus kasvaa merkittävästi, koska oletuskokoonpanot ovat edelleen alttiita React2Shell (CVE-2025-55182) ja tuloksena RCE-riski. standard Next.js-sovellus, jonka luot create-next-app altistaa itsensä ilman mukautettua koodia tai määritysmuutoksia. Tietoturvatutkijat vahvistavat lähes 100 %:n hyödyntämisluotettavuuden ja raportoivat, että 39 % pilviympäristöistä käyttää haavoittuvia instansseja, kun taas 44 % kaikista ympäristöistä käyttää julkisesti alttiina olevia Next.js-sovelluksia, joihin vaikuttaa React2Shell.

React2Shell-altistuksen ymmärtäminen

Haavoittuvat versiot kattavat useita julkaisuja:

komponentti Vaikuttavat versiot
react-server-dom-webpack 19.0, 19.1.0, 19.1.1, 19.2.0
react-server-dom-paketti 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

Koska monet kehykset sisältävät RSC-tuen ytimeen, sovellukset usein perivät haavoittuvan koodin tietämättään. Mikä tahansa näitä paketteja toimittava kehys tai paketoija voi altistaa sovelluksen React2Shellille (CVE-2025-55182) ja sen RCE-riskille. Tämä sisältää:

  • Next.js (sovellusreititin)
  • React Routerin RSC-esikatselu
  • Vite RSC -laajennus
  • Parcel RSC -laajennus
  • Redwood SDK
  • Waku
  • Näyttely

Next.js on erityisen altis, koska se käyttää oletusarvoisesti RSC:hen liittyviä päätepisteitä HTTP:n kautta. Versiot, jotka alkavat merkeillä 14.3.0 canary-koontiversiot, useimpien ohella 15.x ja aikaisin 16.x julkaisuissa, sisältävät haavoittuvan toteutuksen. Jokainen, joka käyttää canary-komentosarjaa 14.3.0-canary.77 tai myöhemmin pitäisi palata takaisin vakaa 14.x haara, kunnes paikattu canary-versio julkaistaan.

Korjatut Next.js-versiot sisältää:

komponentti Korjatut versiot
Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7

Julkiset PoC:t ja luotettava tunnistus

Haavoittuvuuden paljastumisen jälkeen lukuisia oletettuja konseptin toimivuuden todentavia todisteita alkoi kiertää. Monet niistä olivat joko epätarkkoja tai perustuivat virheellisiin oletuksiin. Alkuperäinen haavoittuvuuden kirjoittaja, Lachlan Davidson, vahvisti julkisesti react2shell että liikkeellä olevat GitHub PoC:t eivät vastaa React/Next.js:n ylläpitäjien kanssa yksityisesti jaettua hyväksikäyttöä ja toimittamaa oma PoC

Suuri ongelma varhaisissa julkisissa yrityksissä on kyvyttömyys tunnistaa, että hyväksikäyttö onnistuu standard Next.js-käyttöönotot ilman erityistä sovelluslogiikkaa tai palvelinpuolen funktioita.

Useiden organisaatioiden tietoturvatutkijat ovat korostaneet, että haavoittuvuuden havaitseminen vaatii enemmän kuin vain RSC:n olemassaolon selvittämistä. Assetnoten tiimi julkaisi luotettava havaitsemismenetelmä ja skanneri pystyy vahvistamaan ongelman käyttämättä mitään hyväksikäyttölogiikkaa. Metasploitilla on pian käytettävissä oleva hyödyntämisalue myös tämän haavoittuvuuden vuoksi. 

Tunnistusmenetelmä hyödyntää tapaa, jolla React Server käsittelee objektien ominaisuusviittauksia käyttämällä kaksoispisteitä erottimia ReactFlightClientConfigBundlerWebpack.js/requireModule() funktio. Kun haavoittuvat versiot käsittelevät erityisesti jäsenneltyä moniosaista hyötykuormaa, joka yrittää kulkea olemattomien sisäkkäisten objektien polkujen läpi, ne laukaisevat ennustettavia virhevasteita. Diagnostiikkapyyntö lähettää viitekuvion, kuten `$1:a:a` yhdistettynä tyhjään objektiin. Haavoittuvaisissa toteutuksissa tämä yritetään ratkaista sisäkkäisen ominaisuuden käyttöoikeutena määrittelemättömällä arvolla, mikä johtaa poikkeukseen. Palvelin palauttaa 500-tilan, jossa on selkeä virhetiivistelmäkuvio vastauksen rungossa. 

Välittömät toimenpiteet organisaatioille, jotka kohtaavat React2Shell (CVE-2025-55182) -haavoittuvuuden ja RCE-riskin

Suorita kattava skannaus koodikannastasi ja käyttöönotetuista sovelluksistasi haavoittuvien pakettiversioiden paikantamiseksi. Kiinnitä erityistä huomiota suoriin React-palvelinpakettien riippuvuuksiin, Framework-tason RSC-toteutuksiin (Next.js, Waku, Redwood jne.), `create-next-app`-komennolla tai vastaavilla tukityökaluilla rakennettuihin sovelluksiin ja säilöityihin sovelluksiin, jotka saattavat sisältää vanhentuneita peruskuvia.

Ohjelmiston koostumusanalyysi (SCA) työkaluja, kuten Xygenin SCA voi automaattisesti löytää ohjelmistovarastosi riippuvuudet, joihin se vaikuttaa. 

Korjaa välittömästi:

Päivitys korjattuihin versioihin, kuten 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) ja kaikkiin RSC:tä sisältäviin kehyspaketteihin. Nämä päivitykset ottavat käyttöön tiukan validoinnin RSC-hyötykuorman käsittelylle ja estävät vaarallisen ominaisuuksien viittausten poiston, joka mahdollistaa hyväksikäytön. 

Automatisoidut korjaustyökalut, kuten Xygenin automaattinen korjaustoiminto, voi nopeuttaa prosessia suurissa koodikannoissa.

Ota käyttöön väliaikaiset WAF-suojaukset:

Vaikka korjauspäivitykset leviävät käyttöönoton aikana pipeline, aktivoi verkkosovelluspalomuurin säännöt välitöntä suojausta varten. Suuret pilvipalveluntarjoajat ovat julkaisseet hätäsäännöstöjä, CloudFlareAutomaattinen suojaus kaikille tasoille, kun React-liikennettä käytetään välityspalvelimen kautta, sekä AWS, Akamai, Fastly, Google Cloud käytössäsi on samankaltaisia ​​puolustussääntöjä. Ota nämä kontrollit käyttöön välittömästi luodaksesi suojakerroksen siirtymäkauden ajaksi.

Epäilyttävän HTTP-liikenteen valvonta:

Määritä lokitiedot ja hälytykset hyväksikäyttöyritysten indikaattoreille: Virheellisesti muodostetut tai odottamattomat RSC Flight -protokollan hyötykuormat, epätavalliset 500-virheiden mallit RSC-päätepisteissä, POST-pyynnöt epäilyttävillä `Next-Action`- tai `Next-Router-State-Tree`-otsikoilla, toistuvat pyynnöt `/_next/`-poluille, joissa on moniosaisia ​​hyötykuormia.

Tarkista ohjelmistosi osaluettelo:

Monet kehykset niputtavat RSC-riippuvuudet läpinäkyvästi, mikä tekee niistä näkymättömiä pintatason riippuvuustarkasteluissa. Tutki koko SBOM varmistaakseen: Haavoittuviin React-palvelinpaketteihin ei ole jäänyt transitiivisiä riippuvuuksia, kehyspäivitykset eivät ole tahattomasti tuoneet mukanaan vanhempia RSC-toteutuksia.

Sulkeminen Ajatuksia

React2Shell on yksi vakavimmista JavaScript-ekosysteemin haavoittuvuuksista viime vuosina, ei siksi, että hyökkäysmenetelmä olisi monimutkainen, vaan koska RSC on niin syvällä nykypäivän työkaluissa. Nyt kun korjauksia on saatavilla koko ekosysteemissä, tiimien on saatava päivitykset tuotantoon mahdollisimman nopeasti.

Jos sovelluksesi käyttää Reactin palvelinominaisuuksia joko suoraan tai epäsuorasti, sinun on käsiteltävä tätä haavoittuvuutta ensisijaisena korjauksena.

sca-työkalut-ohjelmisto-koostumusanalyysityökalut
Priorisoi, korjaa ja suojaa ohjelmistoriskisi
Hanki ilmainen tili.
Luottokorttia ei vaadita.

Turvaa ohjelmistokehityksesi ja -toimituksesi

Xygeni-tuotepaketin kanssa