
Remote code execution in Microvirt MEmu
Идентификатор CVE: CVE-2019-14514
Название уязвимого продукта и версии: Microvirt MEmu (все версии до 7.0.2)
Тип проблемы: CWE-78: Некорректная нейтрализация специальных элементов, используемых в команде ОС ('Внедрение команд ОС')
Краткое описание
MEmu — это эмулятор Android для Windows. В ходе наших тестов мы обнаружили открытый TCP-порт, который может быть использован для получения выполнения кода с привилегиями root. Все версии Microvirt MEmu до 7.0.2 содержат уязвимый бинарный файл, который прослушивает порт 21509. Злоумышленник может получить удаленное выполнение кода с привилегиями root в эмулируемой системе Android, отправляя специально сформированные сообщения, содержащие специальные символы, используемые в качестве разделителей команд в оболочках Unix.
Описание
Бинарный файл /system/bin/systemd (не связанный с системой инициализации Freedesktop systemd) запускается от имени пользователя root и прослушивает команды на порту 21509. Если отправлена команда, начинающаяся с installer:uninstall, данные, контролируемые атакующим, будут вставлены в шаблон команды оболочки и переданы в /system/bin/sh без проверки или экранирования. Это означает, что удаленный злоумышленник может вставить специальные символы, такие как ;, && или ||, чтобы отправить собственные команды оболочки, которые будут выполнены в эмулируемой системе с привилегиями root.
Воспроизведение
echo "installer:uninstall;[shell_command_to_execute]" | nc [emulator_ip] 21509
Эмулятор должен выполнить команду, а затем перезагрузиться.
Исправление
Обновите MEmu до версии 7.0.2 или более поздней.