
Execução remota de código no Microvirt MEmu
CVEID: CVE-2019-14514
Nome do(s) produto(s) afetado(s) e versão(ões): Microvirt MEmu (todas as versões anteriores a 7.0.2)
Tipo de problema: CWE-78: Neutralização Incorreta de Elementos Especiais usados em um Comando do SO ('Injeção de Comandos do SO')
Resumo
O MEmu é um emulador de Android para Windows. Durante nossos testes, encontramos uma porta TCP aberta que poderia ser explorada para obter execução de código com privilégios de root. Todas as versões do Microvirt MEmu anteriores a 7.0.2 apresentam um binário vulnerável que fica à escuta na porta 21509. Um atacante poderia obter execução remota de código com privilégios de root em um sistema Android emulado enviando mensagens elaboradas contendo caracteres especiais usados como delimitadores de comandos em shells Unix.
Descrição
O binário /system/bin/systemd (não relacionado ao sistema de init systemd do Freedesktop) é executado pelo usuário root e fica à escuta de comandos na porta 21509. Se um comando que comece com installer:uninstall for enviado, a entrada controlada pelo atacante será inserida em um modelo de comando shell e passada para /system/bin/sh sem verificação nem escape. Isso significa que um atacante remoto poderia inserir caracteres especiais como ;, && ou || para enviar seus próprios comandos shell, que serão executados no sistema emulado com privilégios de root.
Reprodução
echo "installer:uninstall;[shell_command_to_execute]" | nc [emulator_ip] 21509
O emulador deve executar o comando e então reiniciar.
Correção
Atualize o MEmu para a versão 7.0.2 ou posterior.