TL; DR
React2Shell (CVE-2025-55182) vytvára kritický Riziko RCE cez Komponenty servera React (RSC) a rámce, ktoré ich zahŕňajú, vrátane Next.jsPretože zraniteľnosť sa nachádza vo vnútri RSC serializačná a deserializačná vrstva, útočníci môžu odoslať vytvorenú HTTP požiadavku a spustiť neoverené spustenie vzdialeného kódu, a to aj keď tímy používajú predvolené konfigurácie frameworku. Next.js žiadosti čelia najväčšej expozícii, pretože prijímajú a spracovávajú React Flight užitočné zaťaženia štandardne cez HTTP.
Chyba postihuje viacero verzií Balíky React serveraa útočníci nepotrebujú vlastnú aplikačnú logiku na jej zneužitie. Bezpečnostní výskumníci preukazujú takmer 100 % spoľahlivosť a prvé kontroly odhaľujú, že mnohé cloudové prostredia sú zraniteľné. Next.js inštancie. Tímy musia okamžite nainštalovať záplatu a overiť ich celý ekosystém, aby sa zmenšili Riziko RCE v React2Shell (CVE-2025-55182).
Kritická zraniteľnosť nahlásená prostredníctvom programu odmien za chyby spoločnosti Meta 29. novembra spustila urgentné reakcie v celom ekosystéme JavaScriptu.
vyznačená CVE-2025 55182,, zverejnené 3. decembra, teraz označované ako React2Shell je zraniteľnosť s maximálnou závažnosťou, ktorá má vplyv Komponenty servera React spolu s frameworkami, ktoré ich zahŕňajú. Spočiatku bol pridelený samostatný identifikátor zraniteľnosti Next.js (CVE-2025-66478), ale NVD ho neskôr zlúčil do primárnej zraniteľnosti React CVE ako duplicitný záznam.
Základným problémom je tá istá, nebezpečná manipulácia so serializovanými dátami RSC, ktoré je možné spustiť prostredníctvom HTTP požiadavky. To otvára dvere škodlivému aktérovi k odoslaniu manipulovanej HTTP požiadavky, ktorá po jej odoslaní spustí na serveri ľubovoľný JavaScript. deserializované pomocou Reactu.
Prehľad CVE-2025-55182
Komponenty React Servera sú hlboko integrované do moderných frameworkov a v mnohých prípadoch sú štandardne povolené. Z tohto dôvodu môžu byť aplikácie vystavené React2Shell (CVE-2025-55182) aj keď nikdy explicitne nedefinujú koncový bod serverovej funkcie. Implementácia RSC je stále prítomná a už len to stačí na aktiváciu zraniteľných kódových ciest a vytvorenie významného Riziko RCE.
Chyba pramení zo spôsobu, akým Protokol React Flightl spracováva určité štruktúrované dáta. Staršie verzie sa pokúšali prejsť cesty objektov uvedené v dátach bez overenia, či je štruktúra platná alebo očakávaná. Útočník mohol tento proces manipulovať a nakoniec dosiahnuť spustenie kódu na serveri. Nie je potrebné žiadne overenie, žiadna špeciálna konfigurácia ani logika špecifická pre aplikáciu. Keďže problém existuje v konfiguráciách pripravených na použitie, standard nasadenia sú vystavené bez nutnosti akýchkoľvek nezvyčajných podmienok.
K zneužitiu dochádza, keď útočníci odosielajú škodlivé požiadavky HTTP POST, ktoré zneužívajú „vm.runInThisContext„mechanizmus“ prostredníctvom akcií servera. Zatiaľ čo React priamo neodhaľuje zraniteľný koncový bod, Next.js to áno, čím vytvára skutočný vektor vzdialeného útoku.
Next.js prijíma dáta typu Flight z akejkoľvek požiadavky, spracováva ich bez riadneho overenia a odovzdáva ich deserializátoru Reactu. Systém považuje tieto externé vstupy za dôveryhodné, čo útočníkom umožňuje dosiahnuť... vzdialené spustenie kódu prostredníctvom verejne prístupných koncových bodov s plnými oprávneniami procesu Node.js na cieľovom serveri.
Závažnosť sa výrazne zvyšuje, pretože predvolené konfigurácie zostávajú zraniteľné voči React2Shell (CVE-2025-55182) a výsledné Riziko RCE. standard Aplikácia Next.js, ktorú vytvoríte pomocou create-next-app odhaľuje sa bez nutnosti akýchkoľvek zmien vlastného kódu alebo konfigurácie. Bezpečnostní výskumníci potvrdzujú takmer 100 % spoľahlivosť zneužitia a uvádzajú, že 39 % cloudových prostredí prevádzkuje zraniteľné inštancie, zatiaľ čo 44 % všetkých prostredí prevádzkuje verejne odhalené aplikácie Next.js ovplyvnené React2Shell.
Pochopenie expozície v React2Shell
Zraniteľné verzie sa rozprestierajú vo viacerých vydaniach:
| Zložka | Dotknuté verzie |
|---|---|
| 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 |
Keďže mnohé frameworky majú v jadre integrovanú podporu RSC, aplikácie často zdedia zraniteľný kód bez toho, aby si to uvedomovali. Akýkoľvek framework alebo bundler, ktorý dodáva tieto balíky, môže aplikáciu vystaviť riziku React2Shell (CVE-2025-55182) a jeho RCE. Patria sem:
- Next.js (aplikačný router)
- Ukážka RSC pre React Router
- Doplnok Vite RSC
- Plugin RSC pre balíky
- SDK Redwood
- waku
- Expo
Súbor Next.js je obzvlášť ovplyvnený, pretože štandardne používa koncové body súvisiace s RSC cez HTTP. Verzie začínajúce na 14.3.0 zostavenia pre Canaryspolu s väčšinou 15.x a čoskoro 16.x vydania, obsahujú zraniteľnú implementáciu. Každý, kto používa canary 14.3.0-kanárik.77 alebo neskôr by mal vrátiť sa k stabilná 14.x vetva, kým nebude publikovaná opravená verzia pre Canary.
Opravené verzie Next.js zahrnúť:
| Zložka | Opravené verzie |
|---|---|
| Next.js | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
Verejné PoC a spoľahlivá detekcia
Po odhalení zraniteľnosti sa začalo šíriť množstvo údajných dôkazov o existencii konceptov. Mnohé z nich boli buď nepresné, alebo založené na chybných predpokladoch. Pôvodný autor zraniteľnosti, Lachlan Davidson, to verejne potvrdil na react2shell že PoCs, ktoré kolujú na GitHube, nezodpovedajú exploitu zdieľanému súkromne so správcami React/Next.js a poskytol svoj vlastný PoC.
Hlavným problémom skorých verejných pokusov je ich neschopnosť rozpoznať, že vykorisťovanie je úspešné proti standard Nasadenia Next.js bez nutnosti prítomnosti špecifickej aplikačnej logiky alebo funkcií na strane servera.
Bezpečnostní výskumníci z viacerých organizácií zdôraznili, že detekcia zraniteľnosti si vyžaduje viac než len identifikáciu prítomnosti RSC. Tím Assetnote publikoval spoľahlivá metóda detekcie a skener schopný potvrdiť problém bez použitia akejkoľvek logiky zneužitia. Metasploit bude čoskoro mať dostupné zneužitie aj pre túto zraniteľnosť.
Detekčný prístup využíva spôsob, akým React Server spracováva odkazy na vlastnosti objektov pomocou oddeľovačov dvojbodiek v rámci ReactFlightClientConfigBundlerWebpack.js/requireModule() funkcia. Keď zraniteľné verzie spracujú špeciálne štruktúrované viacdielne užitočné zaťaženie, ktoré sa pokúša prejsť cez neexistujúce vnorené cesty objektov, spustia predvídateľné chybové reakcie. Diagnostická požiadavka odošle referenčný vzor ako `$1:a:a` spárované s prázdnym objektom. Zraniteľné implementácie sa to pokúšajú vyriešiť ako prístup k vnorenej vlastnosti na nedefinovanej hodnote, čo vedie k výnimke. Server vráti stav 500 s charakteristickým vzorom chybového súhrnu v tele odpovede.
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]]; } Okamžité opatrenia pre organizácie čeliace riziku React2Shell (CVE-2025-55182) a RCE
Vykonajte komplexnú kontrolu vašej kódovej základne a nasadených aplikácií na vyhľadanie zraniteľných verzií balíkov. Venujte zvláštnu pozornosť priamym závislostiam balíkov servera React, implementáciám RSC na úrovni frameworku (Next.js, Waku, Redwood atď.), aplikáciám vytvoreným pomocou nástroja `create-next-app` alebo podobných nástrojov na vytváranie lešení a kontajnerovým aplikáciám, ktoré môžu obsahovať zastarané základné obrazy.
Analýza zloženia softvéru (SCA) nástroje ako Xygeni's SCA dokáže automaticky objaviť ovplyvnené závislosti v celom inventári softvéru.
Okamžite opravte:
Aktualizácia na opravené verzie ako 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) a všetky frameworkové balíky, ktoré obsahujú RSC. Tieto aktualizácie zavádzajú prísnu validáciu pre manipuláciu s dátami RSC a zabraňujú nebezpečnému dereferencovaniu vlastností, ktoré umožňuje zneužitie.
Automatizované nástroje na nápravu, ako napr. Funkcia automatickej nápravy od spoločnosti Xygeni, môže urýchliť proces naprieč rozsiahlymi kódovými bázami.
Implementujte dočasné ochrany WAF:
Zatiaľ čo sa záplaty šíria v rámci vášho nasadenia pipeline, aktivujte pravidlá brány firewall webových aplikácií pre okamžitú ochranu. Hlavní poskytovatelia cloudových služieb vydali súbory pravidiel pre núdzové situácie, CloudFlareAutomatická ochrana pre všetky úrovne, keď je prevádzka Reactu proxyovaná, ako aj AWS, Akamai, Fastly, Google Cloud mať k dispozícii podobné obranné pravidlá. Tieto ovládacie prvky ihneď povoľte, aby ste vytvorili ochrannú vrstvu počas prechodného obdobia.
Monitorovanie podozrivej HTTP prevádzky:
Konfigurácia protokolovania a upozornení pre indikátory pokusov o zneužitie: Chybné alebo neočakávané dáta protokolu RSC Flight, nezvyčajné vzorce chýb 500 na koncových bodoch RSC, požiadavky POST s podozrivými hlavičkami `Next-Action` alebo `Next-Router-State-Tree`, opakované požiadavky na cesty `/_next/` s viacdielnymi dátami.
Overte si kusovník softvéru:
Mnohé frameworky transparentne zväzujú závislosti RSC, vďaka čomu sú neviditeľné pri povrchových kontrolách závislostí. Preskúmajte svoje kompletné SBOM aby sa zabezpečilo: Nepretrvávajú žiadne tranzitívne závislosti na zraniteľných balíkoch React servera, aktualizácie frameworku neúmyselne nezaviedli staršie implementácie RSC.
Záverečné myšlienky
React2Shell sa v posledných rokoch radí medzi najzávažnejšie zraniteľnosti ekosystému JavaScriptu, nie preto, že by zneužitie bolo komplexné, ale preto, že RSC hlboko preniká do dnešných nástrojov. Teraz, keď sú v celom ekosystéme dostupné záplaty, musia tímy čo najrýchlejšie zaviesť aktualizácie do produkcie.
Ak vaša aplikácia využíva serverové funkcie Reactu, či už priamo alebo nepriamo, musíte túto zraniteľnosť považovať za opravu s najvyššou prioritou.






