
تنفيذ أكواد عن بُعد في Microvirt MEmu
CVEID: CVE-2019-14514
اسم المنتج (المنتجات) المتأثر والإصدارات: Microvirt MEmu (جميع الإصدارات قبل 7.0.2)
نوع المشكلة: CWE-78: تحييد غير صحيح للعناصر الخاصة المستخدمة في أمر نظام التشغيل ('OS Command Injection')
ملخص
MEmu هو محاكي أندرويد لنظام ويندوز. خلال اختباراتنا، وجدنا منفذ TCP مفتوحًا يمكن استغلاله للحصول على تنفيذ كود بصلاحيات الجذر (root). جميع إصدارات Microvirt MEmu قبل 7.0.2 تتضمن ثنائيًا (binary) معرضًا للخطر يستمع على المنفذ 21509. يمكن للمهاجم الحصول على تنفيذ كود عن بُعد بصلاحيات الجذر على نظام أندرويد المُحاكى عن طريق إرسال رسائل مصممة بعناية تحتوي على أحرف خاصة تُستخدم كمحددات أوامر في قذائف يونكس (Unix shells).
الوصف
يتم تشغيل الثنائي /system/bin/systemd (ولا علاقة له بنظام init الخاص بـ Freedesktop systemd) بواسطة مستخدم الجذر root، ويستمع للأوامر على المنفذ 21509. إذا تم إرسال أمر يبدأ بـ installer:uninstall، فسيتم إدخال البيانات التي يتحكم فيها المهاجم في قالب أمر shell وتمريرها إلى /system/bin/sh دون تحقق أو تهريب (escaping). هذا يعني أن المهاجم عن بُعد يمكنه إدراج أحرف خاصة مثل ; أو && أو || لإرسال أوامر shell الخاصة به والتي سيتم تنفيذها على النظام المُحاكى بصلاحيات الجذر.
إعادة الإنتاج
echo "installer:uninstall;[shell_command_to_execute]" | nc [emulator_ip] 21509
يجب على المحاكي تنفيذ الأمر ثم إعادة التشغيل.
الإصلاح
قم بتحديث MEmu إلى الإصدار 7.0.2 أو أحدث.