Hackers explotan masivamente “Metro4Shell” en servidores React Native mal configurados

Una vulnerabilidad crítica en el paquete npm @react-native-community/cli permite la ejecución remota de código en servidores de desarrollo expuestos a Internet. Los ataques ya están desplegando scripts de PowerShell y binarios en Rust. 

Si eres desarrollador de React Native y has dejado tu servidor de desarrollo “escuchando” en una red pública, podrías estar minando criptomonedas o sirviendo de proxy para criminales sin saberlo. Hoy 3 de febrero de 2026, que la vulnerabilidad CVE-2025-11953 (bautizada como Metro4Shell) está siendo explotada activamente desde finales de diciembre de 2025. 

Aunque el fallo fue documentado inicialmente por JFrog en noviembre, la comunidad ha tardado en reaccionar, y los atacantes han aprovechado ese silencio para convertir herramientas de desarrollo legítimas en puertas traseras de producción. 


¿Qué es Metro4Shell? (CVE-2025-11953) 

Es un fallo de Ejecución Remota de Código (RCE) con una puntuación de 9.8 (Crítica). 

  • El Origen: Afecta al Metro Development Server, el empaquetador de JavaScript que viene por defecto con React Native. 
  • El Error: El servidor no valida correctamente las entradas en ciertos endpoints de depuración. 
  • El Impacto: Un atacante no autenticado puede enviar una solicitud HTTP especialmente diseñada al puerto del servidor (usualmente 8081) e inyectar comandos del sistema operativo que se ejecutan con los mismos privilegios que el proceso de Node.js. 

El Ataque en Curso: De la Teoría a la Práctica 

Se ha detectado una campaña organizada que utiliza este fallo no para pruebas, sino para comprometer hosts de forma persistente. 

  • Inyección: Los atacantes envían un comando que descarga un script de PowerShell codificado en Base64. 
  • Evasión de Defensa: El script modifica las exclusiones de Microsoft Defender para “cegar” al antivirus en el directorio de trabajo actual y en la carpeta temporal (%TEMP%). 
  • Payload en Rust: Establece una conexión TCP cruda con un servidor controlado por el atacante (IPs como 8.218.43.248) para descargar un binario escrito en Rust. Este ejecutable cuenta con técnicas avanzadas de anti-análisis para dificultar su estudio por ingenieros inversos. 

¿Por qué está ocurriendo esto? 

El problema raíz es una mala práctica común: “La infraestructura de desarrollo se convierte en infraestructura de producción en el momento en que es accesible desde Internet”. Muchos desarrolladores configuran sus servidores Metro para escuchar en 0.0.0.0 (todas las interfaces) para probar apps desde sus teléfonos móviles, olvidando que esto también expone el puerto 8081 a escáneres de todo el mundo si no hay un firewall intermedio. 


Cómo Protegerse 
  • Actualiza: Asegúrate de estar utilizando la última versión de @react-native-community/cli y sus dependencias. 
  • Bind a Localhost: Configura tu servidor Metro para que solo escuche en 127.0.0.1 si no necesitas acceso externo. 
  • VPN/Túnel: Si necesitas probar desde un dispositivo físico, usa una VPN o un túnel seguro (como ngrok con autenticación) en lugar de exponer el puerto directamente a la IP pública. 
  • Monitoreo: Revisa si hay procesos inusuales de PowerShell o conexiones salientes a IPs desconocidas originadas desde tus procesos de Node.js. 

Related Post