I serverkomponenter i web-rammeværket React (RSC, React Server Components) er en sårbarhed (CVE-2025-55182) elimineret, der gjorde det muligt at køre vilkårlig kode på serveren ved at sende en forespørgsel til serverbehandleren. Sårbarheden er klassificeret som kritisk (10 ud af 10). Sårbarheden optræder i eksperimentelle komponenter som react-server-dom-webpack, react-server-dom-parcel og react-server-dom-turbopack, der bruges til at udføre funktioner og generere brugergrænsefladeelementer på serveren, snarere end på klientsiden.
Problemet er forårsaget af usikker deserialisering af data modtaget i HTTP-forespørgsler til serverbehandlere. Behandlere som «vm#runInThisContext», «vm#runInNewContext», «child_process#execFileSync» og «child_process#execSync» kan bruges til at køre kommandoer i systemet eller udføre JavaScript-kode i konteksten af den nuværende proces (med omgåelse af sandbox-isolering). Det er også muligt at bruge behandlerne «fs#readFileSync» og «fs#writeFileSync» til at læse og skrive vilkårlige filer. serveren, så langt som de nuværende adgangsrettigheder tillader. For angrebet kræves ikke godkendelse. En prototype af exploit er tilgængelig. # Kør kommandoen whoami curl -X POST http://localhost:3002/formaction \ -F '$ACTION_REF_0=' \ -F '$ACTION_0:0={"id":"child_process#execSync","bound":["whoami"]}' # Udfør JavaScript-kode 1+1 curl -X POST http://localhost:3002/formaction \ -F '$ACTION_REF_0=' \ -F '$ACTION_0:0={"id":"vm#runInThisContext","bound":["1+1"]}' # Læs filen /etc/passwd curl -X POST http://localhost:3002/formaction \ -F '$ACTION_REF_0=' \ -F '$ACTION_0:0={"id":"fs#readFileSync","bound":["/etc/passwd","utf8"]}'
Modtageligheden af systemer over for sårbarheder afhænger af brugen af de sårbare serverkomponenter react-server-dom-webpack, react-server-dom-parcel og react-server-dom-turbopack. Applikationer, der ikke bruger react-server, påvirkes ikke af sårbarheden. Omfanget af dækningen af sårbarheden i arbejdsystemer, der bruger React, er endnu ikke klart. På den ene side er React et af de mest populære web-rammeværk (anvendes på cirka 6% af websider), og de sårbare komponenter udvikles primært i hovedrepoet og indgår i udgivelserne. De sårbare komponenter understøttes også i React-baserede rammer som Next.js og react-router. Ifølge company Wiz Research er sårbare instanser blevet identificeret i 39% af de analyserede cloud-miljøer.
På den anden side genereres indholdet på serveren gennem React Server Komponenter er en sjældent brugt funktion (de fleste React-sider gengiver interface kun på klientsiden), og sårbare komponenter er markeret som eksperimentelle og garanterer ikke korrekt funktion. Disse komponenter har et relativt lille antal direkte downloads fra NPM-depotet: react-server-dom-webpack — 670.000 om ugen, react-server-dom-parcel — 7.000 og react-server-dom-turbopack — 32.000; til sammenligning har NPM-pakken React 45 millioner downloads om ugen.
Sårbarheden findes i versioner af React 9.0.0, 19.1.0, 19.1.1 og 19.2.0, og er blevet rettet i opdateringerne React 19.0.1, 19.1.2 og 19.2.1. De sårbare komponenter anvendes også i pakker som Next.js (16 millioner downloads om ugen), react-router (20 millioner downloads om ugen), waku, @parcel/rsc, @vitejs/plugin-rsc og rwsdk.
I Next.js-rammen påvirker sårbarheden (CVE-2025-66478) applikationer, der bruger App Router og Next.js versioner 15.x og 16.x. Det hævdes, at sårbarheden manifesterer sig i Next.js standardkonfiguration (den standardapplikation, der oprettes af værktøjet create-next-app, er sårbar). Brugere anbefales at opdatere til Next.js version 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 eller 16.0.7 hurtigst muligt.
Kilde: opennet.ru
