Эксплуатируемая через SMS уязвимость в Android, приводящая к зацикленной перезагрузке - QubStore

Эксплуатируемая через SMS уязвимость в Android, приводящая к зацикленной перезагрузке

Специалисты обнародовали детали и рабочий эксплоит для уязвимости CVE-2026-58882 в Android: одно специально составленное SMS способно вогнать смартфон в бесконечный цикл перезагрузок.

Сценарий атаки получил название «SMS of Death». Под удар попадают аппараты на Android 12–17, при этом патч выпущен только для версий 14–17. Уязвимость закрыта в октябрьском обновлении репозитория AOSP, а производители устройств получили доступ к исправлению ещё в июле.

Ключевая особенность — жертве не нужно ничего делать: вредоносное сообщение обрабатывается в фоне и на экране не показывается. Корень проблемы — неконтролируемое приведение типов при разборе некорректного заголовка WAP Push-сообщения, пришедшего по SMS. Поле с размером заголовка приводится из беззнакового uintvar к 32-разрядному знаковому int без проверки границ. Из-за преобразования 64-битного long в 32-битный int в Java вполне корректное по протоколу значение 0x80000000 превращается в отрицательное число -2147483648 в переменной headerLength. Дальше эта переменная идёт в вызов «new byte[headerLength]», и отрицательный размер вызывает исключение — процесс com.android.phone аварийно завершается.

Через несколько секунд процесс поднимается заново, но на этом всё не заканчивается. Проблемное сообщение остаётся в очереди необработанных, при следующей попытке разбора com.android.phone снова падает. После серии таких падений срабатывает обработчик RescueParty, который перезагружает устройство в Recovery с предложением сделать сброс к заводским настройкам. Обычная перезагрузка не выручает: если сообщение не удалить из очереди, примерно через 90 секунд телефон снова уйдёт в перезагрузку.

Убрать сообщение из очереди без полного сброса можно через ADB — командами content query и content delete по URI content://sms/raw, временным разрешением WRITE_SMS для com.android.shell и очисткой com.android.providers.telephony. Правда, это лишь позволит вынуть SIM-карту, загрузиться и поставить обновление прошивки. Отдельная сложность: раз com.android.phone падает, подтверждение обработки WAP Push оператору не уходит, и тот продолжает слать сообщение заново до истечения таймаута. В тестах повторные отправки шли от суток до недели. Для устройств, которые производитель больше не обновляет, обходного способа заблокировать проблему нет — остаётся просить оператора связи блокировать передачу WAP Push на своей стороне.

Ссылка на основную публикацию