
Ejecución remota de código en Microvirt MEmu
CVEID: CVE-2019-14514
Name of the affected product(s) and version(s): Microvirt MEmu (todas las versiones anteriores a 7.0.2)
Problem type: CWE-78: Neutralización Incorrecta de Elementos Especiales utilizados en un Comando del Sistema Operativo ('Inyección de Comandos del Sistema Operativo')
Resumen
MEmu es un emulador de Android para Windows. Durante nuestras pruebas, encontramos un puerto TCP abierto que podría ser explotado para obtener ejecución de código con privilegios de root. Todas las versiones de Microvirt MEmu anteriores a la 7.0.2 incluyen un binario vulnerable que escucha en el puerto 21509. Un atacante podría obtener ejecución remota de código con privilegios de root en un sistema Android emulado mediante el envío de mensajes manipulados que contienen caracteres especiales utilizados como delimitadores de comandos en shells Unix.
Descripción
El binario /system/bin/systemd (no relacionado con el sistema de inicio systemd de Freedesktop) es ejecutado por el usuario root y escucha comandos en el puerto 21509. Si se envía un comando que comienza con installer:uninstall, la entrada controlada por el atacante se insertará en una plantilla de comando shell y se pasará a /system/bin/sh sin verificación ni escape. Esto significa que un atacante remoto podría insertar caracteres especiales como ;, && o || para enviar sus propios comandos shell que se ejecutarán en el sistema emulado con privilegios de root.
Reproducción
echo "installer:uninstall;[shell_command_to_execute]" | nc [emulator_ip] 21509
El emulador debería ejecutar el comando y luego reiniciarse.
Solución
Actualice MEmu a la versión 7.0.2 o posterior.