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.





