Falla crítica en React Native CLI permite ejecución remota de comandos

Iniciado por Dragora, Noviembre 05, 2025, 09:22:11 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.


Los investigadores de ciberseguridad han revelado una falla crítica ahora corregida en el popular paquete npm "@react-native-community/cli", ampliamente utilizado para el desarrollo de aplicaciones móviles con React Native, que podría haber permitido a atacantes ejecutar comandos maliciosos del sistema operativo (SO) en entornos vulnerables.

La vulnerabilidad, registrada bajo el identificador CVE-2025-11953, fue calificada con una puntuación CVSS de 9,8 sobre 10, lo que la ubica en la categoría de riesgo crítico. De no haberse solucionado a tiempo, podría haber sido explotada para comprometer equipos de desarrolladores y entornos de desarrollo remoto, afectando potencialmente a miles de proyectos activos.

Detalles técnicos del fallo en React Native CLI

El problema fue descubierto por el investigador Or Peles, experto en seguridad de JFrog, quien explicó que la vulnerabilidad permitía a atacantes remotos no autenticados ejecutar comandos arbitrarios en el sistema operativo que ejecuta el servidor de desarrollo de React Native.

"El fallo hace posible que cualquier atacante remoto active fácilmente la ejecución de comandos del sistema operativo en la máquina víctima, representando un riesgo considerable para los desarrolladores que usan esta herramienta", detalló Peles en un informe compartido con The Hacker News.

La vulnerabilidad afectaba específicamente a las versiones 4.8.0 a 20.0.0-alpha.2 del paquete @react-native-community/cli-server-api, un componente del CLI oficial de React Native mantenido por Meta (Facebook). El error fue parcheado en la versión 20.0.0, publicada a inicios del mes pasado.

Este paquete, que actúa como una interfaz de línea de comandos (CLI), es fundamental para la creación, compilación y prueba de aplicaciones móviles con React Native, y recibe entre 1,5 y 2 millones de descargas semanales, lo que demuestra su enorme alcance dentro del ecosistema de desarrollo.

Origen del fallo: una exposición insegura del servidor Metro

El origen de la vulnerabilidad se encuentra en el servidor de desarrollo Metro, utilizado por React Native para compilar código JavaScript y gestionar activos.
Por defecto, Metro se vincula a interfaces externas en lugar de limitarse a localhost, lo que expone públicamente un punto final denominado "/open-url".

Ese endpoint vulnerable aceptaba solicitudes POST con entradas de usuario, las cuales se pasaban a la función open() del paquete npm "open", sin sanitización adecuada.
Esto significa que un atacante podía inyectar comandos del sistema operativo dentro de la solicitud POST, logrando así la ejecución remota de código (RCE).

Citar"El endpoint '/open-url' del servidor maneja una solicitud POST con datos de usuario que se envían directamente a la función open() insegura del paquete npm 'open', lo que puede desencadenar la ejecución de comandos arbitrarios", explicó Peles.

En otras palabras, un atacante en la misma red o con acceso remoto podría enviar una solicitud POST especialmente diseñada al servidor y ejecutar cualquier comando en el sistema afectado.

Impacto por sistema operativo

El impacto de la vulnerabilidad varía según la plataforma:

En Windows, el fallo permitía ejecutar comandos de shell arbitrarios con argumentos totalmente controlados por el atacante.

En Linux y macOS, el riesgo se centraba en la ejecución de binarios arbitrarios, aunque con un control más limitado de los parámetros.

Estas condiciones convierten al fallo en una amenaza de ejecución remota de código sin autenticación, una de las categorías más peligrosas dentro de la ciberseguridad moderna.

Riesgos y alcance de la vulnerabilidad

El problema no afectaba únicamente a proyectos activos, sino también a entornos de desarrollo local o de integración continua (CI/CD) donde el servidor Metro permanecía activo. Cualquier entorno de desarrollo con puertos abiertos o configuraciones públicas podía ser vulnerable, exponiendo tanto código fuente como credenciales de acceso.

Afortunadamente, los desarrolladores que utilizan React Native sin depender del servidor Metro —por ejemplo, mediante frameworks o herramientas externas— no se ven afectados por esta vulnerabilidad.

Una falla de día cero con alto potencial de explotación

JFrog calificó esta vulnerabilidad como un día cero particularmente peligroso, dada su facilidad de explotación, la ausencia de autenticación requerida y la amplia superficie de ataque.

"Este incidente revela los riesgos ocultos que pueden surgir del uso de componentes de terceros dentro de la cadena de suministro de software", enfatizó Peles. "Los equipos de desarrollo deben aplicar medidas de seguridad proactivas, como el escaneo automatizado y la validación continua de dependencias, para evitar que fallos similares afecten sus entornos".

Medidas de mitigación y recomendaciones

Para evitar posibles ataques, los expertos recomiendan:

  • Actualizar inmediatamente a la versión 20.0.0 o superior de @react-native-community/cli-server-api.
  • Limitar el acceso de red al servidor Metro, asegurándose de que solo se escuche en localhost.
  • Implementar firewalls o reglas de red que bloqueen accesos externos no autorizados.
  • Ejecutar auditorías de dependencias npm periódicamente para detectar vulnerabilidades conocidas.
  • Adoptar herramientas de análisis de seguridad en la cadena de suministro, como las ofrecidas por Snyk, Dependabot o JFrog Xray.

Un recordatorio sobre la seguridad del código abierto

El caso de CVE-2025-11953 refuerza una advertencia recurrente en el ámbito del desarrollo moderno: el código abierto no está exento de vulnerabilidades críticas.
Aunque herramientas como React Native impulsan la innovación y productividad, su seguridad depende de la vigilancia constante y el mantenimiento activo por parte de la comunidad y los equipos de desarrollo.

Para las empresas que basan su infraestructura en entornos JavaScript y React, este incidente subraya la necesidad urgente de adoptar prácticas de ciberseguridad preventivas, monitorear librerías externas y mantener todas las dependencias actualizadas.

En un ecosistema donde una sola dependencia vulnerable puede comprometer toda una cadena de suministro, la prevención sigue siendo la defensa más efectiva.

Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login