
Remote code execution in Microvirt MEmu
CVEID: CVE-2019-14514
受影响产品及版本名称: Microvirt MEmu(所有 7.0.2 之前的版本)
问题类型: CWE-78:OS 命令中特殊元素未正确清理('OS 命令注入')
概述
MEmu 是一款适用于 Windows 的安卓模拟器。在测试过程中,我们发现了一个开放的 TCP 端口,可能被利用以获取 root 权限下的代码执行能力。 所有 7.0.2 之前的 Microvirt MEmu 版本都包含一个存在漏洞的二进制文件,该文件在端口 21509 上监听。攻击者可以通过发送包含用作 Unix shell 命令分隔符的特殊字符的精心构造的消息,在模拟的 Android 系统上以 root 权限执行远程代码。
描述
/system/bin/systemd 二进制文件(与 Freedesktop systemd 初始化系统无关)由 root 用户运行,并在端口 21509 上监听命令。如果发送的命令以 installer:uninstall 开头,攻击者控制的输入将被插入到一个 shell 命令模板中,并传递给 /system/bin/sh,而无需经过验证或转义。这意味着远程攻击者可以插入像 ;、&& 或 || 这样的特殊字符来发送自己的 shell 命令,这些命令将在模拟系统上以 root 权限执行。
重现
echo "installer:uninstall;[shell_command_to_execute]" | nc [emulator_ip] 21509
模拟器应执行该命令,然后重启。
修复措施
将 MEmu 更新到 7.0.2 或更高版本。