Разкрития за уязвимост (CVE-2026-58882) в платформата Android, която позволява зацикляне при перезареждане чрез изпращане на специално форматирано SMS съобщение. За отстраняване на зациклянето е необходимо да се извърши фабричен ресет или ръчни манипулации с помощта на ADB утилита. Уязвимостта е получила кодовото име „SMS of Death“ и е отстранена в октомврийското обновление на Android. Атаката може да бъде извършена върху всякакви телефони, работещи с Android 12-17. Обновлението е пуснато само за Android 14-17. SMS съобщението, което експлоатира уязвимостта, се обработва на заден план и не се показва на устройството.
Проблемът е причинен от целочислено преливане при обработка на некоректен заглавен WAP Push съобщение, изпратено чрез SMS.
Преливането възниква, тъй като полето с размер на заглавката се преобразува в
цяло знакопсихично число от тип int без надлежна проверка на границите, което позволява получаване на отрицателно число в променливата 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=''\"»
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 съобщение, и до изтичането на тайм-аут той ще продължава да прави нови опити за изпращане, а ситуацията ще се повтаря. В проведените тестове повторните изпращания продължаваха от един ден до седмица. За устройства, производителите на които са прекратили публикуването на обновления на фърмуера, засега не съществува обходен маршрут за блокиране на проблема.
Източник: opennet.ru
