Раскрыты детали и опубликован эксплоит для уязвимости (CVE-2026-58882) в платформе Android, позволяющей добиться зацикленной перезагрузки через отправку специально оформленного SMS-сообщения. Для устранения зацикленной перезагрузки требуется сброс к заводским настройкам или ручные манипуляции при помощи утилиты ADB. Уязвимость получила кодовое имя «SMS of Death» и устранена в октябрьском обновлении репозитория AOSP. Производители устройств получили доступ к патчу в июле. Атака может быть совершена на любые телефоны, оснащённые Android 12-17. Обновление выпущено только для Android 14-17. Эксплуатирующее уязвимость SMS-сообщение обрабатывается как фоновое и не отображается на устройстве. Для проведения атаки не требуется выполнение пользователем каких-либо действий.
Проблема вызвана неконтролируемым приведением типа при обработке некорректного заголовка WAP Push-сообщения, отправленного через SMS. Переполнение возникает так как поле с размером заголовка приводится из беззнакового значения (uintvar) к 32-разрядному знаковому типу int без должной проверки границ. Из-за приведения 64-битного типа long в 32-битный int в Java корректное с точки зрения протокола значение 0x80000000 интерпретируется как отрицательное число -2147483648 в переменной headerLength. В дальнейшем эта переменная используется при выделении памяти через вызов «new byte[headerLength]», что в случае получения отрицательного числа приводит к генерации исключения и аварийному завершению процесса com.android.phone.
Через несколько секунд процесс перезапускается, но эффект не ограничивается кратковременным прерыванием связи. Проблемное WAP Push-сообщение из-за аварийного завершения продолжает находиться в очереди необработанных сообщений и новая попытка его обработки приводит к очередному аварийному завершению процесса com.android.phone.
После серии подобных падений срабатывает обработчик RescueParty, который перезагружает устройство в режим Recovery, в котором предлагается выполнить сброс к заводским настройкам. Простая перезагрузка не помогает - если проблемное сообщение не удалено из очереди, примерно через 90 секунд устройство опять будет перезагружено.
Для удаления сообщения из очереди без сброса к заводским настройкам предлагается использовать утилиту adb:
adb shell content query --uri content://sms/raw --projection _id:destination_port:date:deleted
adb shell cmd appops set com.android.shell WRITE_SMS allow
adb shell "content delete --uri content://sms/raw --where \"address='<SENDER>'\""
adb shell cmd appops set com.android.shell WRITE_SMS default
adb shell pm clear com.android.providers.telephony
Но это лишь даст возможность извлечь SIM-карту, загрузиться и установить обновление прошивки. Так как из-за аварийного завершения процесса «com.android.phone» оператору связи не отправляется подтверждение обработки WAP Push-сообщения, до истечения таймаута он будет предпринимать новые попытки отправки и ситуация будет повторяться. В проведённых тестах повторные отправки продолжались от суток до недели. Для устройств, производители которых прекратили публикацию обновлений прошивки, обходного пути блокирования проблемы пока нет, кроме обращения к оператору связи с просьбой блокировки передачи сообщений WAP Push на его стороне.
