
Эксплойт-приложение для CVE-2022-20494, уязвимости высокой степени серьезности, вызывающей постоянный отказ в обслуживании за счет использования функции Android «Не беспокоить» (DND).
Это приложение демонстрирует уязвимость высокой степени серьёзности, приводящую к постоянному отказу в обслуживании (permanent denial-of-service) в NotificationManagerService в Android, которую я обнаружил. После запуска эксплойта устройство показывает чёрный экран либо начинает многократно падать и перезагружаться.
Оно использует API addAutomaticZenRule для исчерпания памяти устройства путём создания вредоносных zen-правил (также известных как правила «не беспокоить»), которые занимают большой объём памяти. Приложение позволяет управлять размером и количеством добавляемых правил: предустановленное количество должно сработать почти на всех устройствах.
Приложение нацелено на API 24 (Android 7.0 Nougat), но может не работать на устройствах старше Android Q из-за изменений в структуре zen-правил. Для работы также требуется опасное разрешение ACCESS_NOTIFICATION_POLICY; приложение запросит его при запуске.
Уязвимость была исправлена — вместе со многими другими ошибками в той же подсистеме — в январском бюллетене безопасности Android за 2023 год путём усечения длинных строк в конструкторах AutomaticZenRule (как в обычных конструкторах, так и в связанных с сериализацией посылок).
Если у вас есть доступ через ADB, устройства, «окирпиченные» из-за этой ошибки, потенциально можно восстановить, выполнив следующую команду ADB.
adb uninstall me.sithi.cve_2022_20494
Обратите внимание, что этот проект предоставлен исключительно в образовательных целях; пожалуйста, не используйте его для вредоносной деятельности.