CVE-2020-0041
Android Android Kernel
2021-11-03
Android Kernel binder_transaction of binder.c contains an out-of-bounds write vulnerability due to an incorrect bounds check that could allow for local privilege escalation. This vulnerability was observed chained with CVE-2019-2215 and CVE-2020-0069 under exploit chain "AbstractEmu."
Технический анализ и план устранения
Суть уязвимости
Уязвимость в подсистеме Binder ядра Android позволяет локальному приложению с низкими привилегиями выполнить атаку "out-of-bounds write" (запись за пределами выделенной памяти). Это происходит из-за некорректной проверки границ в функции binder_transaction.
- Как используют: Злоумышленник может создать специальное вредоносное приложение, которое, используя эту уязвимость, получит повышенные привилегии (root) на устройстве. В дикой природе она использовалась в составе цепочки эксплойтов "AbstractEmu" вместе с CVE-2019-2215 и CVE-2020-0069.
Как исправить
Решение — установить патч для ядра Android от производителя устройства (OEM). Патч был включен в ежемесячные обновления безопасности Android.
-
Определите актуальный уровень безопасности патча (Security Patch Level - SPL):
- На устройстве: Настройки → О телефоне → Обновление ПО (или аналогичный путь).
- Через ADB:
bash adb shell getprop ro.build.version.security_patch
-
Установите обновление:
- Уязвимость исправлена в обновлениях безопасности за март 2020 года и новее.
- Требуемый уровень патча: 2020-03-05 или выше.
- Установите обновление через меню настроек устройства или с помощью инструментов производителя (например,
fastbootдля прошивки).
-
Для разработчиков ядер и сборок AOSP:
- Необходимо применить коммит из репозитория ядра Android Common.
- Идентификатор исправления:
b0c0f5e8d1f9 - Команда для cherry-pick (пример):
bash cd /path/to/kernel/source git fetch https://android.googlesource.com/kernel/common android-4.14-stable git cherry-pick b0c0f5e8d1f9 - Пересоберите и разверните ядро.
Временное решение
Если немедленное обновление невозможно (например, для устаревших устройств без поддержки):
-
Ограничение установки приложений:
- Разрешайте установку приложений только из официального магазина Google Play. Отключите установку из неизвестных источников (Настройки → Безопасность).
- Это снижает риск попадания вредоносного приложения, использующего уязвимость.
-
Минимизация привилегий:
- Не предоставляйте приложениям излишние разрешения, особенно доступ к отладке по USB или специальные возможности.
- Регулярно проверяйте список установленных приложений и удаляйте ненужные или подозрительные.
-
Сегментация сети (для корпоративных устройств):
- Изолируйте устройства, которые не могут быть обновлены, в отдельный сегмент сети с ограниченным доступом к критическим ресурсам.
Важно: Временные меры лишь снижают поверхность атаки, но не устраняют саму уязвимость. Обновление системы — единственное полное решение.