Des chercheurs en sécurité de JFrog ont révélé une grave vulnérabilité dans React Native, qui pourrait exposer des millions de développeurs à des attaques par exécution de code à distance (RCE).
La faille affiche un score CVSS de 9,8 et affecte le package @react-native-community/cli, très populaire, qui enregistre plus de deux millions de téléchargements par semaine.
La vulnérabilité de React
La vulnérabilité (CVE-2025-11953) permet à des attaquants non authentifiés d’exécuter des commandes arbitraires du système d’exploitation sur les machines exécutant le serveur de développement de React Native, appelé Metro.
Comme le serveur peut être accessible même lorsqu’il est hébergé localement, son exploitation peut compromettre des environnements de développement partout dans le monde.
Le problème vient d’une gestion non sécurisée des entrées fournies par l’utilisateur au sein du point de terminaison /open-url du CLI.
Ce point de terminaison transmet des données non filtrées directement à la fonction open() du package open npm, ce qui permet aux attaquants d’exécuter des commandes shell sur les systèmes concernés.
Bien que la vulnérabilité soit particulièrement facile à exploiter sous Windows, elle pourrait également toucher, en théorie, les systèmes macOS et Linux.
La faille affecte les versions 4.8.0 à 20.0.0-alpha.2, et Meta a publié un correctif.
Les développeurs peuvent vérifier les dépendances de leur projet en exécutant npm list @react-native-community/cli-server-api ou la version globale avec npm list -g @react-native-community/cli-server-api.
Fonctionnement de l’exploit
L’analyse technique de JFrog a révélé qu’un attaquant pouvait envoyer une requête POST spécialement conçue au point de terminaison /open-url du serveur de développement vulnérable.
Comme le serveur transmet directement les entrées utilisateur au shell système sans les nettoyer, cela peut entraîner l’exécution de commandes arbitraires.
Par exemple, sous Windows, un attaquant pourrait exécuter une commande de test inoffensive, comme lancer la Calculatrice (calc.exe) ou une commande plus dangereuse pour manipuler des fichiers système.
Lors de démonstrations contrôlées, les chercheurs de JFrog ont réussi à exécuter des commandes créant de nouveaux fichiers sur le système hôte, démontrant ainsi une capacité complète d’exécution de code à distance.
Le risque est accru par une faille de configuration secondaire dans le code source principal de React Native.
Le serveur de développement se lie à toutes les interfaces réseau (0.0.0.0), plutôt qu’au seul hôte local.
Comme l’ont déclaré les chercheurs de JFrog : « Si host est omis, le serveur accepte les connexions sur l’adresse IPv6 non spécifiée (::) lorsque l’IPv6 est disponible, ou sur l’adresse IPv4 non spécifiée (0.0.0.0) dans le cas contraire. Dans la plupart des systèmes d’exploitation, l’écoute sur l’adresse IPv6 non spécifiée (::) peut également amener net.Server à écouter sur l’adresse IPv4 non spécifiée (0.0.0.0). »
Cette configuration par défaut expose involontairement les serveurs de développement locaux à des accès réseau externes, ce qui élargit la surface d’attaque.
Comment se protéger
Il est vivement conseillé aux développeurs de mettre à jour le package @react-native-community/cli-server-api vers la version 20.0.0 ou ultérieure, qui inclut le correctif officiel. Cette mise à jour corrige effectivement la vulnérabilité d’exécution de code à distance.
Pour les équipes qui ne peuvent pas effectuer immédiatement la mise à niveau, JFrog recommande une mesure d’atténuation temporaire — lier explicitement le serveur de développement à l’hôte local en le démarrant avec la commande npx react-native start –host 127.0.0.1.
Cela limite l’accès externe au serveur de développement Metro et réduit l’exposition aux attaques réseau.
Il convient également d’appliquer des pratiques de développement sécurisé, d’effectuer régulièrement des audits des dépendances et d’utiliser des outils automatisés d’analyse de sécurité afin d’identifier rapidement les bibliothèques tierces vulnérables au cours du cycle de développement.
Les attaques visant la chaîne d’approvisionnement en hausse
La divulgation de CVE-2025-11953 met en évidence un défi persistant du développement logiciel moderne : les risques de sécurité inhérents aux dépendances tierces.
Même des frameworks open source de confiance comme React Native peuvent être compromis par des failles dans des composants gérés par des tiers.
Cet incident illustre également la sophistication croissante des chaînes d’approvisionnement logicielles attaques, dans lesquelles les adversaires ciblent de plus en plus les outils et environnements de développement plutôt que les systèmes de production.





