Introduction : Pourquoi CVE-2025-11953 change la donne pour la sécurité de React Native
Si vous êtes un React Native ou un professionnel de la sécurité informatique travaillant avec des applications mobiles, vous devez être conscient de ce qui suit CVE-2025-11953-une vulnérabilité critique qui affecte le cœur du système Serveur de développement Metro utilisé dans React Native projets. Cette vulnérabilité expose l'environnement de développement à l'exécution de code à distance (RCE) ce qui présente des risques importants, en particulier pour ceux qui ne configurent pas leurs serveurs de développement de manière sécurisée.
En résumé, CVE-2025-11953 révèle une double coup dur: défauts de configuration par défaut et vulnérabilités liées à l'injection de commandes. Les Serveur de développement Metroessentiel pour le regroupement et le débogage des applications React Native, se lie par défaut à 0.0.0.0ce qui permet un accès externe au serveur. De plus, certains points de terminaison exposés du serveur acceptent des entrées utilisateur non filtrées, ce qui permet aux attaquants d'injecter des commandes du système d'exploitation, entraînant ainsi RCE et compléter Prise en charge de l'hôte.
React Native étant un framework de premier plan pour le développement d'applications mobiles multiplateformes, les développeurs sous-estiment souvent les risques posés par cette vulnérabilité. Dans cet article, nous allons analyser les principaux problèmes liés à la vulnérabilité de React Native. CVE-2025-11953Nous aborderons également les aspects pratiques de la sécurisation de votre environnement de développement et du maintien de flux de travail sécurisés pour React Native. Nous aborderons également les aspects pratiques de la sécurisation de votre environnement de développement et du maintien de flux de travail React Native sécurisés.
Qu'est-ce que CVE-2025-11953 ? Un examen plus approfondi
Selon l'équipe de recherche en sécurité de JFrog Ltd. l'équipe de recherche en sécurité, la vulnérabilité affecte le paquetage NPM, largement utilisé. @react-native-community/cliqui gère le serveur Metro pour React Native. La faille permet à des attaquants non authentifiés de soumettre une requête POST élaborée à un point de terminaison exposé (tel que /open-url) et d'exécuter des commandes arbitraires du système d'exploitation sur l'hôte. JFrog+2nvd.nist.gov+2 Facteurs clés :
- Score CVSS 3.1 : 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) nvd.nist.gov
- Versions concernées : @react-native-community/cli-server-api de 4.8.0 à 20.0.0-alpha.2. correctif disponible dans la version 20.0.0. Le Hacker News+1
- Problème sous-jacent : Le serveur Metro se lie à 0.0.0.0 par défaut. et transmet les données de l'utilisateur par l'intermédiaire de
ouvrir()(du paquet npm ouvert) dans le chemin d'exécution des commandes du système d'exploitation. CSO Online+1
Pourquoi c'est important : Contrairement aux failles typiques des serveurs de développement limités à localhost, celui-ci fournit un service de vecteur de réseau à distance. Les machines de développement et les agents de CI exécutant Metro sont à risque. Planète eSecurity
| Objet | Détails |
|---|---|
| ID CVE | CVE-2025-11953 |
| Type de vulnérabilité | Injection de commandes dans le système d'exploitation (CWE-78) |
| Composant affecté | Serveur de développement Metro React Native CLI's |
| Versions concernées | React Native ≤ 0.74.1 / Metro ≤ 0.81.0 (et CLI-server-api 4.8.0-20.0.0-alpha.2) |
| Point final de déclenchement | Points d'extrémité HTTP exposés (par exemple, /open-url, /symbolicate, /debugger-ui) |
| Gravité (CVSS) | 9,8 / AV:N / AC:L / PR:N / UI:N |
| Risque primaire | Exécution de code à distance → compromission de la machine Dev → mouvement latéral du réseau interne |

Voici un examen plus approfondi des risques techniques spécifiques qui rendent cette faille particulièrement dangereuse:
Exposition par défaut du serveur Metro
Quand CLI React Native démarre le Serveur de développement Metroil se lie par défaut à 0.0.0.0ce qui signifie que le serveur est à l'écoute de toutes les interfaces réseau disponibles, qu'elles soient internes ou externes. Il s'agit là d'un risque de sécurité majeur pour tout développeur hébergeant le serveur sur une machine dotée d'une interface réseau. accès à l'internet.
Voici un exemple de code qui configure cette liaison par défaut :
javascript :
// Configuration par défaut du serveur Metro (react-native/node_modules/metro/src/server/index.js)
const config = {
host : '0.0.0.0', // se lie à toutes les interfaces
port : 8081, // port par défaut
enableCORS : true // les requêtes cross-origin sont activées
};
Le serveur Metro ne doit se lier qu'à l'adresse 127.0.0.1 (localhost), ce qui garantit que seule la machine de développement locale peut y accéder. Toutefois, cette configuration permet à accès à distancece qui met le serveur en danger.
Vulnérabilité de l'injection de commandes
La deuxième partie de la vulnérabilité implique injection de commandeoù certains points d'aboutissement, tels que /symboliser et /debugger-uiCette absence de validation des entrées permet aux attaquants d'injecter des commandes malveillantes et potentiellement d'exécuter du code arbitraire.
Par exemple, une demande légitime de /symboliser pourrait ressembler à ceci :
POST /symbolique HTTP/1.1
Hôte : [target-ip]:8081
Content-Type : application/json
{
"logPath" : "/var/log/react-native/crash.log"
}
Cependant, un attaquant pourrait injecter des commandes supplémentaires, comme celle-ci :
POST /symbolique HTTP/1.1
Hôte : [target-ip]:8081
Content-Type : application/json
{
"logPath" : "/var/log/react-native/crash.log && whoami"
}
Dans ce cas, le système exécute la commande cat /var/log/react-native/crash.log && whoamipermettant à l'attaquant d'exécuter des commandes arbitraires sur le serveur, telles que whoami pour révéler l'utilisateur actuel.
Quelles versions de React Native sont affectées par la CVE-2025-11953 ?
L'impact de la vulnérabilité Versions de React Native ≤ 0.74.1 et Versions Metro ≤ 0.81.0. Si vous utilisez ces versions ou une version plus ancienne, il est essentiel de procéder immédiatement à une mise à jour afin d'éviter d'exposer votre environnement de développement à une exécution de code à distance.
Pour vérifier votre version de React Native, vous pouvez exécuter :
npm list @react-native-community/cli-server-api
Si la version est obsolète, passez à une version sécurisée en exécutant le programme :
npm install react-native@latest
Si la mise à niveau de React Native n'est pas possible dans l'immédiat, vous pouvez Mise à jour du métro de manière indépendante en courant :
npm install metro@latest --save-dev
Stratégies d'atténuation pratiques pour CVE-2025-11953
Correction immédiate : Lier Metro à localhost
Si vous ne pouvez pas mettre à jour immédiatement vos dépendances, vous pouvez temporairement atténuer le risque en liant l'élément Serveur métropolitain à 127.0.0.1. Cela empêche les attaquants externes d'atteindre le serveur, même s'il est exposé.
Pour lier Metro à localhost, exécutez :
npx react-native start --host 127.0.0.1
Pour rendre cela permanent, ajoutez ce qui suit à votre package.json:
"scripts" : {
"start" : "react-native start --host 127.0.0.1",
"android" : "react-native run-android",
"ios" : "react-native run-ios"
}
Sécurité des réseaux : Utiliser des pare-feu
Une autre mesure de protection immédiate consiste à configurer pare-feu pour bloquer tout accès externe au port Metro par défaut (8081). Par exemple, sous Linux, utilisez :
iptables -A INPUT -p tcp --dport 8081 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 8081 -j DROP
Pour les utilisateurs de Windows, configurez le pare-feu pour limiter le port 8081 à localhost.
Penligent : Automatiser les tests de sécurité pour les projets React Native
En tant que développeur React Native, rester à l'affût des vulnérabilités comme les CVE-2025-11953 peut s'avérer difficile. C'est pourquoi Penligentune plateforme de tests de pénétration alimentée par l'IA, entre en jeu. Penligent automatise la détection des vulnérabilités telles que CVE-2025-11953La solution React Native, qui analyse votre base de code et vos configurations React Native afin d'identifier les risques potentiels en temps réel.
Avec PenligentVous pouvez intégrer des systèmes automatisés de gestion de l'information dans votre système d'information. tests de pénétration dans votre pipeline de développement, garantissant ainsi la sécurité de vos projets avant leur déploiement. Cette approche proactive de la sécurité vous aide à éviter les vulnérabilités coûteuses et à protéger vos utilisateurs contre les attaques malveillantes.
Conclusion : Sécuriser les projets React Native contre CVE-2025-11953
CVE-2025-11953 a mis en évidence des failles de sécurité critiques dans le Serveur de développement Metro de React NativeIl est donc plus facile pour les attaquants de prendre le contrôle d'un environnement de développement. En comprenant les défauts de configuration et risques liés à l'injection de commandesLes développeurs peuvent prendre des mesures pour protéger leurs projets.
Pour atténuer les risques de CVE-2025-11953les développeurs doivent :
- Mise à jour vers la dernière version React Native et Métro versions.
- Mettre en œuvre des solutions temporaires telles que lier le serveur à localhost.
- Configurer les pare-feu pour restreindre l'accès au port par défaut de Metro.
En outre, l'utilisation d'outils tels que Penligent peuvent automatiser les tests de sécurité, garantissant ainsi que votre environnement de développement reste sûr. En adoptant ces stratégies, vous pouvez protéger vos projets React Native contre les menaces de exécution de code à distance et veillez à ce que vos flux de développement restent sécurisés.
Pour plus d'informations sur les meilleures pratiques en matière de sécurité, consultez le site Le Top 10 de l'OWASP et Avis de sécurité de npm pour des mises à jour régulières.

