In de servercomponenten van het webframework React (RSC, React Server Components) is een kwetsbaarheid verholpen (CVE-2025-55182) die de mogelijkheid bood om via een verzoek naar de serververwerker willekeurige code op de server uit te voeren. De kwetsbaarheid is geclassificeerd met een kritieke ernst (10 van 10). De kwetsbaarheid manifesteert zich in experimentele componenten zoals react-server-dom-webpack, react-server-dom-parcel en react-server-dom-turbopack, die worden gebruikt voor het uitvoeren van functies en het genereren van interface-elementen op de server, in plaats van aan de cliƫntzijde.
Het probleem wordt veroorzaakt door onveilige deserialisatie van gegevens die zijn ontvangen in HTTP-verzoeken naar de serververwerkers. De verwerkers 'vm#runInThisContext', 'vm#runInNewContext', 'child_process#execFileSync' en 'child_process#execSync' kunnen worden gebruikt om commando's in het systeem uit te voeren of JavaScript-code in de context van het huidige proces uit te voeren (met het omzeilen van sandbox-isolatie). Het is ook mogelijk om de verwerkers 'fs#readFileSync' en 'fs#writeFileSync' te gebruiken voor het lezen en schrijven van willekeurige bestanden. de server, afhankelijk van de huidige toegangsrechten. Voor de aanval is geen authenticatie vereist. Een prototype van de exploit is beschikbaar. # Commando whoami uitvoeren curl -X POST http://localhost:3002/formaction \ -F '$ACTION_REF_0=' \ -F '$ACTION_0:0={"id":"child_process#execSync","bound":["whoami"]}' # JavaScript-code 1+1 uitvoeren curl -X POST http://localhost:3002/formaction \ -F '$ACTION_REF_0=' \ -F '$ACTION_0:0={"id":"vm#runInThisContext","bound":["1+1"]}' # Bestand /etc/passwd lezen curl -X POST http://localhost:3002/formaction \ -F '$ACTION_REF_0=' \ -F '$ACTION_0:0={"id":"fs#readFileSync","bound":["/etc/passwd","utf8"]}'
De kwetsbaarheid van systemen hangt af van de toepassing van de kwetsbare servercomponenten react-server-dom-webpack, react-server-dom-parcel en react-server-dom-turbopack. Applicaties die geen gebruik maken van react-server worden door de kwetsbaarheid niet beĆÆnvloed. De mate van affectatie van productiesystemen die React gebruiken door de kwetsbaarheid is momenteel niet duidelijk. Enerzijds is React een van de populairste webframeworks (gebruikt op ongeveer 6% van de websites), en de kwetsbare componenten worden voornamelijk ontwikkeld in de hoofdrepository en zijn onderdeel van de releases. Kwetsbare componenten worden ook ondersteund in op React gebaseerde frameworks, zoals Next.js en react-router. Volgens gegevens van Wiz Research zijn kwetsbare exemplaren geĆÆdentificeerd in 39% van de geanalyseerde cloudomgevingen.
Aan de andere kant vindt contentgeneratie op de server plaats via React Server Componenten zijn een zelden gebruikte functie (de meeste React-sites renderen de interface alleen aan de clientzijde), en kwetsbare componenten worden gemarkeerd als experimenteel en garanderen geen correcte werking. Deze componenten hebben relatief weinig directe downloads uit de NPM-repository: react-server-dom-webpack ā 670.000 per week, react-server-dom-parcel ā 7.000 en react-server-dom-turbopack ā 32.000, ter vergelijking: het NPM-pakket React heeft 45 miljoen downloads per week.
De kwetsbaarheid is aanwezig in versies React 9.0.0, 19.1.0, 19.1.1 en 19.2.0, en is verholpen in updates van React 19.0.1, 19.1.2 en 19.2.1. Kwetsbare componenten worden ook gebruikt in pakketten zoals Next.js (16 miljoen downloads per week), react-router (20 miljoen downloads per week), waku, @parcel/rsc, @vitejs/plugin-rsc en rwsdk.
In het Next.js-framework raakt de kwetsbaarheid (CVE-2025-66478) applicaties die gebruikmaken van de App Router en takken van Next.js 15.x en 16.x. Het wordt gesteld dat de kwetsbaarheid zich manifesteert in de standaardconfiguratie van Next.js (de standaardapplicatie, gemaakt met de create-next-app-tool, is kwetsbaar voor aanvallen). Gebruikers wordt aangeraden om zo snel mogelijk de update Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 of 16.0.7 te installeren.
Bron: opennet.ru
