Eine kritische Sicherheitslücke wurde in einem weit verbreiteten Kommandozeilen-Tool für die Entwicklung von React Native-Anwendungen entdeckt und inzwischen behoben. Die Schwachstelle, eingestuft mit einem CVSS-Score von 9,8 von 10, ermöglichte es Angreifern unter bestimmten Umständen, aus der Ferne beliebige Befehle auf den Computern von Entwicklern auszuführen.
Das betroffene Paket, „@react-native-community/cli“, wird wöchentlich zwischen 1,5 und 2 Millionen Mal heruntergeladen, was das potenzielle Risiko für die Software-Lieferkette verdeutlicht. Das von Meta gepflegte Tool ist ein zentraler Bestandteil für das Erstellen mobiler Anwendungen mit dem beliebten Framework.
Wichtige Erkenntnisse
- Eine kritische Sicherheitslücke (CVE-2025-11953) wurde im NPM-Paket „@react-native-community/cli“ entdeckt.
- Die Schwachstelle erhielt eine Bewertung von 9,8 (kritisch) und ermöglichte die Remote-Ausführung von Code.
- Betroffen waren Versionen von „@react-native-community/cli-server-api“ von 4.8.0 bis 20.0.0-alpha.2.
- Ein Patch wurde in Version 20.0.0 veröffentlicht, Entwickler sollten umgehend aktualisieren.
Das Ausmaß der Bedrohung
Die Sicherheitslücke mit der Kennung CVE-2025-11953 stellt eine erhebliche Gefahr für Entwickler dar, die das betroffene Werkzeug nutzen. Sie ermöglicht es unbefugten Angreifern im selben Netzwerk, ohne Authentifizierung Code auf dem System des Entwicklers auszuführen. Dies öffnet Tür und Tor für den Diebstahl von Daten, die Installation von Malware oder die Übernahme des gesamten Systems.
Verantwortlich für die Entdeckung war der Sicherheitsforscher Or Peles von JFrog. In einem Bericht erklärte er: „Die Schwachstelle ermöglicht es entfernten, nicht authentifizierten Angreifern, auf einfache Weise die Ausführung beliebiger Betriebssystembefehle auf dem Rechner auszulösen, auf dem der Entwicklungsserver von react-native-community/cli läuft, was ein erhebliches Risiko für Entwickler darstellt.“
Hohes Risiko in Zahlen
Mit einem CVSS-Score von 9,8 von 10 wird diese Sicherheitslücke als „kritisch“ eingestuft. Ein derart hoher Wert wird nur für Schwachstellen vergeben, die leicht auszunutzen sind, keine Benutzerinteraktion erfordern und weitreichende Auswirkungen haben können.
Die betroffenen Pakete sind „@react-native-community/cli“ sowie „@react-native-community/cli-server-api“ in den Versionen 4.8.0 bis 20.0.0-alpha.2. Die hohe Downloadzahl des Pakets von bis zu zwei Millionen pro Woche unterstreicht die Dringlichkeit für Entwickler, ihre Abhängigkeiten zu überprüfen und zu aktualisieren.
Technischer Hintergrund der Schwachstelle
Die Ursache des Problems liegt im Verhalten des Metro-Entwicklungsservers, der von React Native standardmäßig verwendet wird. Dieser Server, der für die Bündelung von JavaScript-Code und Assets zuständig ist, bindet sich standardmäßig an externe Netzwerkschnittstellen anstatt nur an den lokalen Rechner (localhost).
Dadurch wird ein bestimmter Endpunkt, „/open-url“, im Netzwerk erreichbar. Dieser Endpunkt wurde entwickelt, um URLs zu öffnen, nutzt dafür aber eine unsichere Funktion aus einem anderen weit verbreiteten NPM-Paket namens „open“.
Was ist Command Injection?
Bei einer Command Injection-Schwachstelle gelingt es einem Angreifer, speziell präparierte Eingaben an eine Anwendung zu senden, die dann vom Betriebssystem als Befehl interpretiert und ausgeführt werden. Dies geschieht oft, wenn Benutzereingaben nicht ausreichend geprüft und bereinigt werden, bevor sie an Systemfunktionen weitergegeben werden.
Ein Angreifer kann eine speziell gestaltete POST-Anfrage an diesen „/open-url“-Endpunkt senden. Der Inhalt dieser Anfrage wird direkt an die unsichere Funktion weitergeleitet, was zur Ausführung von Betriebssystembefehlen führt. Da der Server keine Authentifizierung für diesen Endpunkt verlangt, kann jeder im selben Netzwerk den Angriff durchführen.
„Der '/open-url'-Endpunkt des Servers verarbeitet eine POST-Anfrage, die einen vom Benutzer eingegebenen Wert enthält, der an die unsichere open()-Funktion des 'open' NPM-Pakets übergeben wird, was zur Ausführung von Betriebssystembefehlen führt“, so Or Peles.
Unterschiedliche Auswirkungen je nach Betriebssystem
Die konkreten Folgen eines erfolgreichen Angriffs variieren je nach dem Betriebssystem des Entwicklers. Die Forscher stellten fest, dass die Möglichkeiten für Angreifer auf Windows-Systemen am größten sind.
Angriffsvektoren im Detail:
- Windows: Angreifer können beliebige Shell-Befehle mit vollständig kontrollierten Argumenten ausführen. Dies gibt ihnen die maximale Kontrolle über das kompromittierte System.
- Linux und macOS: Auf diesen Systemen ist der Angriff ebenfalls möglich, jedoch mit Einschränkungen. Angreifer können beliebige Programme oder Binärdateien ausführen, haben aber nur eine begrenzte Kontrolle über die Parameter, die an diese Programme übergeben werden.
Trotz der Einschränkungen auf Linux und macOS bleibt das Risiko hoch. Selbst die Ausführung eines einfachen Programms kann ausreichen, um weitere Angriffe zu starten oder sensible Informationen zu exfiltrieren. Entwickler, die in öffentlichen oder ungesicherten Netzwerken wie Cafés oder Co-Working-Spaces arbeiten, waren besonders gefährdet.
Maßnahmen und Empfehlungen für Entwickler
Die gute Nachricht ist, dass die Schwachstelle bereits behoben wurde. Die Maintainer haben reagiert und die Version 20.0.0 von „@react-native-community/cli-server-api“ veröffentlicht, die das Problem behebt. Alle Entwickler, die React Native verwenden, sind dringend angehalten, ihre Projekte zu überprüfen und die Abhängigkeiten auf die neueste, sichere Version zu aktualisieren.
Es ist wichtig zu betonen, dass nicht alle React Native-Entwickler betroffen sind. Wer ein Framework nutzt, das nicht auf den Metro-Server als Entwicklungsumgebung setzt, ist von dieser speziellen Lücke nicht betroffen.
Der Vorfall unterstreicht erneut die Risiken, die in der modernen Softwareentwicklung durch die Abhängigkeit von Drittanbieter-Paketen entstehen. Or Peles fasst die Lehren aus diesem Vorfall zusammen:
„Diese Zero-Day-Schwachstelle ist aufgrund ihrer leichten Ausnutzbarkeit, des Fehlens von Authentifizierungsanforderungen und der breiten Angriffsfläche besonders gefährlich. Sie zeigt auch die kritischen Risiken auf, die sich in Drittanbieter-Code verbergen.“
Für Entwicklungs- und Sicherheitsteams bedeutet dies, dass automatisierte und umfassende Sicherheitsscans über die gesamte Software-Lieferkette hinweg unerlässlich sind. Nur so können leicht ausnutzbare Fehler behoben werden, bevor sie eine Organisation beeinträchtigen.





