Изследователи от Bitdefender Labs създадоха Android приложение, което не съдържа изпълним код и не изисква никакви разрешения, а инсталирането му вкарва Pixel 10 в цикъл на сривове, който може да се прекрати само с фабрично нулиране. Уязвимостта, наречена от Bitdefender GhostMap, произтича от начина, по който Android чете ZIP структурата вътре в APK файла.

Приложението не е нужно да бъде отваряно. Екипът възпроизведе цикъла на Pixel 10 с Android 17 и корекция за сигурност от 5 август 2026 г., а фабричното нулиране изтрива данните, съхранени на телефона. Bitdefender не е наблюдавала техниката да се използва в реални атаки.
Bitdefender твърди, че Google не планира актуализация за сигурност. Първият сигнал, изпратен на 20 август, е затворен като Won’t Fix (Not Reproducible). Google отговори на повторното съобщение от 25 август, което включваше работещо доказателство за концепцията, като определи проблема за извън обхвата на корекция за сигурност и го предаде на екип за евентуално включване в бъдеща версия.
Всичко започна с банков дроппер
На 12 август банков дроппер, събран в реална среда, срина емулаторите за анализ на Bitdefender по време на инсталация. Пакер – инструмент, който пренаписва вътрешната структура на APK файла, за да възпрепятства инструментите за обратно инженерство – беше обвил пробата, а пренаписването е счупило и инсталатора на Android.
Две библиотеки, една пропуска
Всеки запис в ZIP файл декларира метод на компресия и некомпресиран размер. Android поддържа два метода – stored (без компресия) и deflated (с компресия). Полето е широко 16 бита, така че файлът може да декларира съвсем друга стойност. Една библиотека на Android проверява декларирания размер само за записи от тип stored. Втора третира всичко, което не е deflated, като stored и мапира файла в паметта с декларирания размер. Запис с трета стойност на метода минава през двете проверки.
Ядрото позволява мапиране, по-голямо от самия файл. При заснетото от Bitdefender APK от 8408 байта е мапирано около 16 MB, а първото четене след реалния край на файла предизвиква SIGBUS – CPU грешка, която убива процеса, извършващ четенето.
Кой процес ще бъде убит, зависи от това кой файл е повреден. Лош манифест срива инсталатора. Лош ресурс, четен от system_server – процеса, в който работи по-голямата част от Android, – го срива при всяко рестартиране, защото той препрочита същия файл. Един от записите показва 110 цикъла със зациклила на екрана анимация при зареждане, а безопасният режим изпълнява същия цикъл.
Кое е новото
На въпрос с какво това се различава от по-ранното изследване на Zimperium за повредени APK файлове, Силвиу Стахие, анализатор по сигурността в Bitdefender, отговори: „В изследването на Zimperium повредените APK файлове само сриват инструментите за анализ и устояват на декомпилация, но тези приложения работят нормално на устройството. Ние намерихме начин да използваме тази разлика в парсерите допълнително и да предизвикаме четене извън границите (OOB) и SIGBUS в извикващия процес. В някои случаи този процес е самият системен процес на Android.“
Относно обхвата Стахие каза: „Да, грешката присъства в AOSP и я тествахме от Android 10 до най-новата версия. Тъй като е в базовия Android, не тествахме телефони на други производители.“
Големият отворен въпрос е дали приложение с капан би могло да премине проверката в магазина за приложения и да попадне на телефоните по-късно чрез обновяване. Bitdefender загатва тази възможност, но не казва дали е реалистична.
„Имаме основателна причина да не разширяваме тази конкретна точка в изследването. Подробности за заобикаляне на одитни контроли при неоправена уязвимост могат да бъдат счетени за доказателство за злоупотреба (Директива 2013/40/ЕС)“, заяви Стахие пред Help Net Security. Изследването не уточнява дали проверката в Google Play би засякла такъв файл.
Bitdefender няма CVE номер за грешката. „Ако бяха приели грешката през програмата за уязвимости, щяхме да имаме CVE. В края на октомври ги уведомихме за плановете си да публикуваме изследването на 5 ноември и те се съгласиха“, каза Стахие.