React2Shell - CVE-2025-55182 - RCE-risiko

React2Shell: CVE-2025-55182 og Next.js RCE-risikoen

TL; DR

React2Shell (CVE-2025-55182) skaber en kritisk RCE-risiko tværs React Server-komponenter (RSC) og rammer, der integrerer dem, herunder Next.jsFordi sårbarheden bor inde i RSC serialiserings- og deserialiseringslaget, angribere kan sende en udformet HTTP-anmodning og udløse uautoriseret fjernudførelse af kode, selv når teams kører standard framework-konfigurationer. Next.js ansøgninger har den højeste eksponering, fordi de accepterer og behandler Reager flyvning nyttelast via HTTP som standard.

Fejlen påvirker flere versioner af React-serverpakker, og angribere behøver ikke brugerdefineret applikationslogik for at udnytte det. Sikkerhedsforskere viser næsten 100% pålidelighed, og tidlige scanninger afslører, at mange cloudmiljøer kører sårbare Next.js forekomster. Holdene skal opdatere med det samme og validere deres fulde økosystem for at krympe React2Shell (CVE-2025-55182) RCE-risiko.

En kritisk sårbarhed rapporteret gennem Metas bug bounty-program den 29. november har udløst akutte reaktioner på tværs af JavaScript-økosystemet.

udpeget CVE-2025-55182, offentliggjort den 3. december, nu omtalt som React2Shell er en sårbarhed med maksimal alvorlighed, der påvirker React Server-komponenter sammen med frameworks, der inkorporerer dem. I starten blev der tildelt en separat Next.js sårbarhedsidentifikator (CVE-2025-66478), men NVD'en konsoliderede den senere i den primære React CVE som en duplikatpost.

Det underliggende problem er det samme, usikker håndtering af serialiserede RSC-nyttelaster, der kan udløses via en HTTP-anmodning. Dette åbner døren for, at en ondsindet aktør kan sende en manipuleret HTTP-anmodning, der resulterer i, at vilkårlig JavaScript kører på serveren efter at være blevet deserialiseret af React.

CVE-2025-55182 Oversigt

React Server-komponenter er dybt integreret i moderne frameworks og er i mange tilfælde aktiveret som standard. På grund af dette kan applikationer blive udsat for React2Shell (CVE-2025-55182) selvom de aldrig eksplicit definerer et Server Function-slutpunkt. RSC-implementeringen er stadig til stede, og det alene er nok til at aktivere sårbare kodestier og skabe en betydelig RCE-risiko.

Fejlen stammer fra den måde, hvorpå React Flight-protokollenl behandler visse strukturerede nyttelaster. Ældre versioner forsøgte at gå objektstier angivet i nyttelasten uden at verificere, at strukturen var gyldig eller forventet. En angriber kunne manipulere denne proces og i sidste ende nå kodeudførelse på serveren. Ingen godkendelse, ingen speciel konfiguration og ingen app-specifik logik kræves. Da problemet findes i standardkonfigurationer, standard Implementeringer eksponeres uden behov for usædvanlige betingelser.

Udnyttelse sker, når angribere sender ondsindede HTTP POST-anmodninger, der misbruger "vm.runInThisContext"mekanismen via serverhandlinger. React eksponerer ikke direkte det sårbare slutpunkt, men Next.js gør det, hvilket skaber en ægte fjernangrebsvektor. 

Next.js accepterer Flight-nyttelast fra enhver anmodning, behandler dem uden ordentlig validering og sender dem til Reacts deserialiseringsprogram. Systemet behandler disse eksterne input som betroede, hvilket gør det muligt for angribere at opnå fjern kodeudførelse gennem offentligt tilgængelige endepunkter med fulde Node.js-procesprivilegier på målserveren. 

Alvorligheden stiger betydeligt, fordi standardkonfigurationerne forbliver sårbare overfor React2Shell (CVE-2025-55182) og den resulterende RCE-risiko. En standard Next.js-applikationen, du opretter med create-next-app eksponerer sig selv uden at kræve brugerdefineret kode eller konfigurationsændringer. Sikkerhedsforskere bekræfter næsten 100% udnyttelsespålidelighed og rapporterer, at 39% af cloudmiljøer kører sårbare instanser, mens 44% af alle miljøer kører offentligt eksponerede Next.js-applikationer, der er påvirket af React2Shell.

Forståelse af eksponering for React2Shell

De sårbare versioner spænder over flere udgivelser:

Component Berørte versioner
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

Fordi mange frameworks integrerer RSC-understøttelse i kernen, arver applikationer ofte den sårbare kode uden at være klar over det. Ethvert framework eller bundler, der leverer disse pakker, kan udsætte applikationen for React2Shell (CVE-2025-55182) og dens RCE-risiko. Det inkluderer:

  • Next.js (App-router)
  • React Router RSC-forhåndsvisning
  • Vite RSC-plugin
  • Parcel RSC-plugin
  • Redwood SDK
  • Waku
  • Expo

Next.js er særligt påvirket, fordi det som standard bruger RSC-relaterede slutpunkter over HTTP. Versioner, der starter med 14.3.0 canary builds, sammen med de fleste 15.x og tidligt 16.x udgivelser, indeholder den sårbare implementering. Enhver, der kører canary 14.3.0-kanariefugl.77 eller senere bør vende tilbage til stabil 14.x grenen indtil en opdateret canary-version er udgivet.

Opdaterede Next.js-versioner omfatter:

Component Opdaterede versioner
Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7

Offentlige PoC'er og pålidelig detektion

Efter afsløringen af ​​sårbarheden begyndte adskillige formodede proof-of-concepts at cirkulere. Mange af dem var enten unøjagtige eller baseret på fejlagtige antagelser. Den oprindelige forfatter til sårbarheden, Lachlan Davidson, bekræftede offentligt den react2shell at de cirkulerende GitHub-PoC'er ikke matcher den udnyttelse, der deles privat med React/Next.js-vedligeholdere, og leverede hans eget PoC

Et stort problem med tidlige offentlige forsøg er deres manglende evne til at erkende, at udnyttelse lykkes imod standard Next.js-implementeringer uden krav om specifik applikationslogik eller serversidefunktioner.

Sikkerhedsforskere fra flere organisationer har understreget, at det at opdage sårbarheden kræver mere end blot at identificere, om RSC er til stede. Assetnotes team offentliggjorde en pålidelig detektionsmetode og en scanner i stand til at bekræfte problemet uden at bruge nogen form for exploit-logik. Metasploit vil snart have en tilgængelig udnyttelse også for denne sårbarhed. 

Detektionsmetoden udnytter, hvordan React Server håndterer objektegenskabsreferencer ved hjælp af kolonseparatorer i ReactFlightClientConfigBundlerWebpack.js/requireModule() funktion. Når sårbare versioner behandler en specielt struktureret flerdelt nyttelast, der forsøger at krydse ikke-eksisterende indlejrede objektstier, udløser de forudsigelige fejlresponser. En diagnostisk anmodning sender et referencemønster som `$1:a:a` parret med et tomt objekt. Sårbare implementeringer forsøger at løse dette som indlejret egenskabsadgang på en udefineret værdi, hvilket resulterer i en undtagelse. Serveren returnerer en status på 500 med et karakteristisk fejldigestmønster i svarteksten. 

Øjeblikkelige handlinger for organisationer, der står over for React2Shell (CVE-2025-55182) og RCE-risikoen

Udfør en omfattende scanning af din kodebase og implementerede applikationer at finde sårbare pakkeversioner. Vær særlig opmærksom på direkte React-serverpakkeafhængigheder, RSC-implementeringer på Framework-niveau (Next.js, Waku, Redwood osv.), applikationer bygget med `create-next-app` eller lignende scaffolding-værktøjer og containeriserede applikationer, der kan indeholde forældede basisbilleder.

Analyse af softwarekomposition (SCA) værktøjer som Xygenis SCA kan automatisk opdage berørte afhængigheder i hele din softwarebeholdning. 

Opdater med det samme:

Opdatering til opdaterede versioner såsom 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) og alle framework-pakker, der inkluderer RSC. Disse opdateringer introducerer streng validering af RSC-nyttelasthåndtering og forhindrer den usikre ejendoms-dereferencing, der muliggør udnyttelse. 

Automatiserede afhjælpningsværktøjer, såsom Xygenis automatiske afhjælpningsfunktion, kan accelerere processen på tværs af store kodebaser.

Implementer midlertidige WAF-beskyttelser:

Mens patches spredes gennem din implementering pipelineaktiver regler for webapplikationsfirewall for øjeblikkelig beskyttelse. Store cloududbydere har udgivet nødregelsæt, CloudFlareAutomatisk beskyttelse for alle niveauer, når React-trafik er proxy, samt AWS, Akamai, Fastly, Google Cloud har lignende defensive regler tilgængelige. Aktiver disse kontroller med det samme for at oprette et beskyttende lag i overgangsperioden.

Overvåg for mistænkelig HTTP-trafik:

Konfigurer logføring og advarsler for indikatorer for udnyttelsesforsøg: Forkerte eller uventede RSC Flight-protokolnyttelaster, usædvanlige mønstre af 500 fejl på RSC-slutpunkter, POST-anmodninger med mistænkelige `Next-Action`- eller `Next-Router-State-Tree`-headere, gentagne anmodninger til `/_next/`-stier med nyttelaster med flere dele

Bekræft din softwares stykliste:

Mange frameworks samler RSC-afhængigheder transparent, hvilket gør dem usynlige i afhængighedsgennemgange på overfladeniveau. Undersøg din komplette SBOM for at sikre: Der er ingen transitive afhængigheder tilbage på sårbare React-serverpakker, og at frameworkopdateringer ikke utilsigtet har introduceret ældre RSC-implementeringer.

Lukning Tanker

React2Shell er blandt de mest alvorlige sårbarheder i JavaScript-økosystemer i de seneste år, ikke fordi udnyttelsen er kompleks, men fordi RSC kører så dybt ind i nutidens værktøjer. Nu hvor patches er tilgængelige på tværs af økosystemet, skal teams skubbe opgraderinger i produktion så hurtigt som muligt.

Hvis din applikation bruger Reacts serverfunktioner, enten direkte eller indirekte, skal du behandle denne sårbarhed som en topprioritetsrettelse.

sca-tools-software-kompositionsanalyseværktøjer
Prioriter, afhjælp og sørg for dine softwarerisici
Få din gratis konto.
Der kræves ikke noget kreditkort.

Sikr din softwareudvikling og -levering

med Xygeni-produktsuite