← На главную

Одна SMS могла надолго вывести Android из строя

29.10.2026 07:08 · hackernews

Исследователь под ником Mark B описал уязвимость Android, которая позволяла удалённо нарушить работу телефона одной служебной SMS. Жертве не нужно было ничего открывать: сообщение WAP Push не появлялось во входящих, а номер отправителя не показывался.

Проблема возникала в WapPushOverSms.decodeWapPdu(). Длина заголовка читалась как long, затем без проверки приводилась к int и использовалась как размер массива. Специально сформированное значение превращалось в отрицательное число и вызывало NegativeArraySizeException в главном потоке com.android.phone.

Падение процесса обрывало текущие звонки, включая экстренные, и оставляло устройство без связи на одну-две секунды. Но одним сбоем дело не ограничивалось. Оператор повторно доставлял неподтверждённое сообщение, поэтому телефон падал снова и снова. В тестах одна SMS вызывала периодические отключения до недели, а примерно двадцать сообщений надолго делали устройство непригодным.

После перезагрузки вредоносное сообщение снова извлекалось из очереди. На Android 12 это могло привести к циклу Recovery примерно каждые 90 секунд. Удалить проблемные записи через ADB можно без сброса данных, но обычному пользователю с компьютером и нужными навыками такое восстановление недоступно.

Google исправила уязвимость в октябрьском обновлении безопасности 2026 года для Android 14–17. Вместо предложенной исследователем проверки длины система стала перехватывать RuntimeException и удалять повреждённое сообщение, разрывая цикл повторных сбоев. Более ранние patch level остаются уязвимыми.

Автор опубликовал proof-of-concept и исходный код только для авторизованных исследований. Особенно тревожен не просто отказ связи, а возможность сорвать экстренный вызов, когда помощь нужна немедленно.

Уязвимость отправили Google 5 мая, а публично раскрыли 29 октября. На протестированных Pixel 9 и нескольких Samsung Galaxy она воспроизводилась со стопроцентной надёжностью.

Для человека без ADB устройство фактически оказывалось заблокированным до полного сброса или обновления системы.

Читать оригинал →