5 de noviembre de 2025

🧨 Falla crítica en React Native CLI expone a millones de desarrolladores a ataques remotos

🧨 Falla crítica en React Native CLI expone a millones de desarrolladores a ataques remotos

¿Y si solo con tener tu entorno de desarrollo abierto alguien pudiera ejecutar comandos en tu computadora… sin que lo notes?
Eso fue exactamente lo que ocurrió con una vulnerabilidad crítica en React Native CLI, la herramienta oficial que usan miles de desarrolladores para construir apps móviles con JavaScript.


⚠️ Una falla con impacto global

Investigadores descubrieron una vulnerabilidad con puntuación CVSS de 9.8 en @react-native-community/cli, parte del ecosistema mantenido por Meta (Facebook).
El fallo —identificado como CVE-2025-11953— fue corregido en la versión 20.0.0, liberada a principios de octubre de 2025, y afectaba desde la versión 4.8.0 hasta la 20.0.0-alpha.2.

El problema se origina en el servidor de desarrollo Metro, que por defecto escuchaba conexiones en todas las interfaces de red (no solo en localhost) y exponía un endpoint vulnerable:

/open-url

A través de él, un atacante podía inyectar comandos del sistema operativo sin autenticación, logrando ejecución remota en el equipo del desarrollador.


💻 Qué podía hacer un atacante

El impacto era grave porque el ataque no requería credenciales ni interacción del usuario.
Dependiendo del sistema operativo, el atacante podía:

  • 🪟 Ejecutar aplicaciones en Windows (por ejemplo, abrir calc.exe o scripts maliciosos).

  • 🍎 Lanzar binarios en macOS o Linux, con ciertas restricciones pero aún con riesgo de persistencia o escalamiento.

Y aunque el entorno comprometido fuera “solo de desarrollo”, la amenaza no termina ahí:
si ese equipo estaba conectado a una red corporativa o tenía acceso a repositorios internos, el atacante podía moverse lateralmente y afectar sistemas de producción o pipelines de CI/CD.


👨‍💻 ¿Quiénes estaban en riesgo?

Principalmente los desarrolladores que:

  • Iniciaban proyectos con versiones vulnerables de React Native CLI.

  • Ejecutaban el servidor Metro con comandos como:

    npm start npx react-native start
  • No restringían el acceso de red o trabajaban en entornos compartidos (coworking, VPN corporativas, WiFi abiertas).

Si usas React Native pero no empleas Metro como servidor, el riesgo era mucho menor o nulo.


🧰 Qué debes hacer ahora

Si desarrollas con React Native, esto es lo que debes aplicar ya mismo:

  1. 🚀 Actualiza a la versión 20.0.0 o superior del paquete CLI.

    npm install @react-native-community/cli@latest
  2. 🔍 Verifica dependencias con:

    npm list @react-native-community/cli
  3. 🔒 Restringe el acceso de red a tu entorno de desarrollo. Usa localhost o configura firewalls para evitar conexiones externas.

  4. 🧠 Monitorea actividad sospechosa en tu máquina y red local.

  5. 🧩 Evalúa la seguridad de tus herramientas DevOps: los entornos de desarrollo también son parte de la cadena de suministro.


⚙️ Más allá del bug: una lección de seguridad en el desarrollo

Este caso demuestra algo que muchos desarrolladores pasan por alto:
las herramientas de desarrollo también son un vector de ataque.

Cada vez más grupos criminales apuntan a explotar entornos Dev para infiltrarse en proyectos antes de que el código siquiera llegue a producción.

Actualizar, segmentar redes y auditar dependencias ya no es opcional. Es parte del trabajo diario de un desarrollador consciente.


En resumen:
Esta vulnerabilidad en React Native CLI es una alerta para toda la comunidad:
el código más seguro empieza por un entorno de desarrollo protegido.

Escrito por:
Luis Carreón