Эксперт продемонстрировал удаленный DoS в Android

image

Теги: Android, DoS, атака, Bluetooth

Уязвимость присутствует в Android 4.3, в версии 4.4 она уже исправлена.

Эксперт по безопасности Майк Райан (Mike Ryan) продемонстрировал и описал уязвимость в реализации Bluedroid (реализации стека протокола Bluetooth, начиная с версии Android 4.3), которая позвоялет аварийно завершить работу устройства. Исследователь подчеркивает, что эта уязвимость не эксплуатируема, поскольку аварийное завершение работы вызвано FORTIFY_SOURCE.

Уязвимость присутствует в коде обработчика пакетов Bluedroid BLE (Bluetooth Smart). Для ее эксплуатации злоумышленник должен заставить пользователя подключиться к вредоносному устройству BLE. После подключения устройство отправит некорректный GATT-пакет, что приведет к переполнению буфера в стеке.

Казалось бы, вынудить пользователя подключиться к вредоносному устройству – задача не из легких. Тем не менее, стоит учитывать тот факт, что многие BLE-приложения для Android подключаются к любому доступному устройству для того, чтобы определить, связано ли оно с тем или иным приложением. Таким образом, для успешного осуществления атаки необходимо просто запустить приложение.

Стоит отметить, что эта брешь была исправлена в Android 4.4.

Уязвимым является код в файле stack/gatt/gatt_cl.c в gatt_process_notification (строка 614). Это код для обработки пакетов-уведомлений, которые BLE-устройства периодически отправляют BLE-мастеру. В строке 626 присутствует следующий код:

STREAM_TO_UINT16 (value.handle, p);
 value.len = len - 2;
memcpy (value.value, p, value.len)

value.len является uint16_t. Поскольку и p, и len подконтрольны атакующему, в данном случае нас интересует только значение len. p - это содержимое пакета, отправляемого атакующим, а len - это количество байт в пакете. Код ожидает пакет с длиной в минимум два байта. Если атакующий отправит однобайтный пакет, value.len = len - 2, что приведет к потере значимости целочисленных и значение value.len будет равно 65534. memcpy попытается скопировать около 64k из p.

Райан отметил, что Google не выпустила исправлений для Android 4.3, поэтому пользователям следует обновить платформу до версии 4.4.

Ниже все желающие могут ознакомиться с демонстрационным видео:


или введите имя

CAPTCHA