Metro-Entwicklungsserver Remote-Code-Ausführung in Metas React Native CLI gefährdet Entwickler

Quelle: Pressemitteilung JFrog 3 min Lesedauer

Anbieter zum Thema

Sicherheitsforscher melden eine RCE-Sicherheitslücke in „react-native-community/cli“. Über exponierte HTTP-Endpunkte des Metro-Servers kön­nen Angreifer aus der Ferne Betriebssystembefehle auslösen. Betroffen ist die weit verbreitete React-Native-Entwicklungsumgebung.

Das JFrog Security Research Team bewertet CVE-2025-11953 in der React-Native-Entwicklungsumgebung mit einem CVSS-Basiswert von 9,8 und warnt vor Remote-Code-Ausführung über den Metro-Entwicklungsserver.(Bild: ©  StockUp - stock.adobe.com)
Das JFrog Security Research Team bewertet CVE-2025-11953 in der React-Native-Entwicklungsumgebung mit einem CVSS-Basiswert von 9,8 und warnt vor Remote-Code-Ausführung über den Metro-Entwicklungsserver.
(Bild: © StockUp - stock.adobe.com)

Das JFrog Security Research Team hat in der Entwicklungsumgebung React Native von Meta eine kritische Schwachstelle entdeckt. CVE-2025-11953 betrifft das Kommando­zei­len­werk­zeug „react-native-community/cli“. Das Paket gehört zu den zentralen Bausteinen des React-Native-Ökosystems und verzeichnet rund zwei Millionen Downloads pro Woche. Die Sicher­heits­lücke erhält im Common Vulnerability Scoring System, CVSS, einen Basiswert von 9,8.

Alle Betriebssysteme betroffen, aber unterschiedlich

Angreifer ohne Authentifizierung können beliebige Betriebssystembefehle auf Rechnern aus­führen, auf denen der Entwicklungsserver der React-Native-CLI läuft. Grundlage ist der von der CLI gestartete Metro-Server. Er bietet einen HTTP-Endpunkt „open-url“ an, der eine URL aus dem „JSON-POST-Body“ liest und unverändert an die Funktion „open“ des „npm“-Pakets open weitergibt.

Unter Windows führt ein Aufruf wie „open(url)“ dazu, dass „cmd“ mit den Argumenten für den „start“-Befehl startet. JFrog demonstriert dies unter anderem mit dem Aufruf von „calc.exe“ und mit einer Nutzlast, die über „cmd /c“ eine Datei auf dem System anlegt. Damit sei laut For­scher­team der Nachweis für die Ausführung beliebiger Befehle erbracht.

Unter macOS und Linux ruft die Bibliothek stattdessen „open“ oder „xdg-open“ auf, ohne Shell und mit anderer Argumentsemantik. Das erschwert klassische Befehlsinjektion, ermöglicht jedoch weiterhin die Ausführung beliebiger ausführbarer Dateien, wenn bestimmte Be­ding­ung­en erfüllt sind. JFrog hält vollständige Befehlsausführung auf Unix-ähnlichen Systemen mit zusätzlicher Forschung für möglich.

Falsche Server-Bindung öffnet den Entwicklungsport ins Netz

Die Untersuchung zeigt, warum der verwundbare Endpunkt überhaupt von außen erreichbar ist. Der „runServer“-Code der CLI erzeugt zwar eine Variable für den Hostnamen, die stand­ard­mäßig auf „localhost“ gesetzt ist. An „Metro.runServer“ wird aber „args.host“ übergeben, das standardmäßig nicht belegt ist.

Metro ruft am Ende „httpServer.listen“ mit einem nicht gesetzten Host-Argument auf. „Node.js“ bindet in diesem Fall an die unbestimmte IPv6-Adresse, also an die Adresse mit zwei Doppel­punkten, oder an die IPv4-Adresse 0.0.0.0. In der Praxis meldet der Server zwar „Starting dev server on http://localhost:8081“, lauscht aber an 0.0.0.0 sowie an der IPv6-Adresse und ist damit aus externen Netzen erreichbar. Entwicklungsendpunkte wie „open-url“ werden so für An­grei­fer freigelegt. Die Kombination aus dieser Bindung und der unsicheren Übergabe der URL an die „open“-Funktion macht die Remote-Ausnutzung von CVE-2025-11953 möglich.

Wer ist betroffen?

Gefährdet sind Entwickler, die ihr React-Native-Projekt mit einer verwundbaren Version von „@react-native-community/cli“ initialisiert haben und den Metro-Entwicklungsserver mit Befehlen wie „npm start“, „npm run start“, „android“, „ios“, „windows“ oder „macos“ starten, ebenso mit „npx react-native“ oder „npx @react-native-community/cli“ mit denselben Pa­ra­metern.

Die Schwachstelle steckt im Paket „@react-native-community/cli-server-api“ in den Versionen 4.8.0 bis 20.0.0-alpha.2 und wurde in Version 20.0.0 behoben. Nicht jede Umgebung mit in­stal­lier­ter Bibliothek ist automatisch betroffen, etwa wenn ein Framework keinen Metro-Server verwendet.

Update und Workarounds

JFrog empfiehlt, „@react-native-community/cli-server-api“ auf Version 20.0.0 oder höher zu aktualisieren. Die Korrektur für CVE-2025-11953 ist ab dieser Version enthalten. Entwickler sollten prüfen, ob das Paket im Projektverzeichnis oder global in einer verwundbaren Version vorliegt.

Wenn ein Update nicht sofort möglich ist, sollte der Entwicklungsserver explizit an die Local­host-Schnittstelle gebunden werden. Das Starten mit dem Flag „--host 127.0.0.1“ reduziert die Angriffsfläche, indem der Zugriff aus externen Netzen eingeschränkt wird.

So funktioniert sichere Entwicklung

Der Vorfall zeigt, wie schnell sich Remote-Code-Ausführung aus der Kombination von un­san­ier­ten Benutzereingaben und Funktionen auf Systemebene ergeben kann, und das selbst in Entwicklungstools. JFrog verweist auf sichere Codierungspraktiken und automatisierte Sicherheitsscans. Werkzeuge für „Static Application Security Testing“ können Datenflüsse von Benutzereingaben bis zu unsicheren Funktionsaufrufen sichtbar machen und solche Schwach­stellen bereits in der Entwicklungsumgebung aufdecken.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

(ID:50619302)