Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-20516 — Write-up и proof of concept на ADB для CVE-2026-20516 — уязвимости типа confused deputy в MediaTek Android TV MiracastService, позволяющей локально изменять состояние Wi-Fi Direct. | Kitploit
Инструменты/GitHubGitHub/dingo97/cve-2026-20516
Безопасность AndroidПовышение привилегийАнализ уязвимостейЭксплуатацияПентестинг мобильных приложенийМобильная безопасностьСтатьи и ИсследованияОбучение и Образование
GitHubdingo97/cve-2026-20516

CVE-2026-20516

Write-up и proof of concept на ADB для CVE-2026-20516 — уязвимости типа confused deputy в MediaTek Android TV MiracastService, позволяющей локально изменять состояние Wi-Fi Direct.

1922 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
Сайт

CVE-2026-20516: MiracastService confused deputy on Android TV

Исследование и раскрытие информации: Davide Di Matteo (@Dingo97).

Это мой первый CVE, зачтённый в мой счёт. Я обнаружил неправильно экспортированный системно-привилегированный сервис Miracast во время исследования PEAQ Android TV. Вызывающая сторона может передать extra-параметр intent, который заставляет сервис изменять состояние Wi-Fi Direct, используя собственные привилегии.

MediaTek опубликовала эту проблему в своём бюллетене безопасности за сентябрь 2026 года и указывает Davide Di Matteo в своих благодарностях по безопасности. Эта статья и оригинальное воспроизведение через ADB публикуются после скоординированного раскрытия и с разрешения вендора.

Читать на моём сайте · Репозиторий GitHub

Краткое описание уязвимости

ПолеЗначение
CVECVE-2026-20516
Компонентcom.mediatek.androidbox.MiracastService
Уровень серьёзности по оценке вендораСредний
Опубликованный CVSS v3.15.5 — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H (Tenable)
Официальная категория слабостиCWE-926: Improper Export of Android Application Components
МеханизмConfused deputy / отсутствие контроля доступа
Влияние по описанию вендораЛокальный отказ в обслуживании через возможное повышение привилегий
Предварительные условия атакиЛокальное выполнение кода с пользовательскими привилегиями; взаимодействие с пользователем не требуется
Идентификаторы патчейALPS11060069 / DTV04881615
Проблема MediaTekMSV-7882
Публикация вендора7 сентября 2026
Публикация статьи11 сентября 2026

Влияние, идентификаторы патчей и предварительные условия локальной атаки задокументированы в записи CVE. Числовая оценка и вектор выше — это те, что опубликованы Tenable. Они заменяют предварительную оценку 5.1 из моего первоначального отчёта. CWE-284 (improper access control) и CWE-441 (confused deputy) описывают первоначальный анализ; MediaTek классифицирует проблему как CWE-926.

Тестовая среда

ПолеЗначение
УстройствоPEAQ Smart TV, модель AI PONT
OEM / платформаChanghong / MediaTek
Операционная системаAndroid TV 11
Уровень патча безопасности AndroidИюнь 2025
СборкаRTMA.250416.192
Ядро4.19.116++ (#1 Sat Aug 23 09:58:11 CST 2025)
ПОV03.06037
Пакетcom.mediatek.androidbox
APKWFDSinkTest_CH.apk
Версия приложения1.0.0.16
Объявленный shared UIDandroid.uid.system

Это сведения об устройстве, использованном для первоначального исследования, а не список всех уязвимых или исправленных версий прошивки.

Первопричина

Анализ манифеста, зафиксированный в первоначальном отчёте, показывает, что MiracastService экспортируется с android:exported="true", без разрешения, защищающего доступ к сервису. Приложение объявляет android:sharedUserId="android.uid.system".

Метод onStartCommand() сервиса читает булев extra-параметр intent screen_share, не проверяя, уполномочена ли вызывающая сторона управлять Miracast. Затем сервис выполняет операции в собственном привилегированном контексте. Это и есть confused deputy: вызывающая сторона предоставляет запрос, а системный сервис предоставляет полномочия.

В проанализированной реализации путь screen_share=false может вызвать WifiP2pManager.createGroup(). Вызов условный: демонстрация экрана должна быть отключена в состоянии сервиса, Wi-Fi P2P должен быть включён, и группа ещё не должна существовать. Имя булевой переменной не следует интерпретировать как прямое утверждение о том, будет ли создана или удалена группа.

В отчёте также зафиксирована запись в Settings.Global.putInt(..., "miracast_enable", 1) в onCreate(). Таким образом, запуск жизненного цикла сервиса может вызвать запись в защищённые настройки через сервис. Это наблюдение из анализа реализации; приведённый ниже фрагмент лога не демонстрирует эту запись независимо.

Соответствующие проверки разрешений зависят от фреймворка Android и сборки OEM. Ключевая проблема — отсутствие авторизации на границе экспортированного сервиса, а не утверждение о том, что каждая версия Android применяет идентичный набор разрешений для Wi-Fi Direct.

Влияние и границы доказательств

MediaTek описывает риск локального отказа в обслуживании. На протестированном телевизоре записанная сессия ADB показывает, что сервис принимает screen_share=false и успешно создаёт группу Wi-Fi Direct. Неожиданные изменения этого состояния могут помешать легитимному использованию Miracast и могут привести к раскрытию состояния приёмника, которое пользователь не запрашивал.

Экспортированный компонент и отсутствие контроля доступа подтверждают путь атаки через локальное приложение в первоначальном анализе. ADB shell работает под идентификатором Android shell, а не под обычным UID приложения. Следовательно, эти команды и логи демонстрируют поведение сервиса из ADB; сами по себе они не доказывают выполнение из приложения с нулевыми разрешениями. Этот репозиторий не содержит отдельно протестированного воспроизведения на основе приложения.

Фрагмент не устанавливает произвольное выполнение кода, root-оболочку, завершённое подключение от nearby-устройства или успешное удаление группы. Вызывающая сторона не получает системный UID сервиса; она побуждает сервис действовать от её имени.

Доказательство концепции

Предварительные условия

  • Протестированная уязвимая прошивка или эквивалентная сборка, предоставляющая тот же компонент.
  • ADB, установленный на хосте, и авторизованное отладочное подключение к телевизору, которым вы владеете или который уполномочены тестировать.
  • Wi-Fi и Wi-Fi Direct, доступные на телевизоре.
  • Два терминала. Приведённые ниже команды хоста используют POSIX-оболочку, например Bash или WSL с доступом к ADB.

Ниже приведено ручное воспроизведение из первоначального отчёта. Оно изменяет состояние Miracast и принудительно останавливает пакет приёмника. Запишите текущее состояние трансляции перед запуском.

1. Мониторинг сервиса

В первом терминале:

adb logcat | grep -i -E 'screen_share|createGroup|removeGroup'

2. Подготовка состояния приёмника

Во втором терминале:

adb shell am startservice -n com.mediatek.androidbox/.MiracastService --ez screen_share true
sleep 3
adb shell am force-stop com.mediatek.androidbox
sleep 2

Это последовательность сброса, использованная в первоначальном воспроизведении. Принудительная остановка пакета не гарантирует, что подсистема Wi-Fi Android удалила существующую группу. Если группа сохраняется, сбросьте приёмник через элементы управления телевизора и проверьте его состояние перед повторной попыткой.

3. Запрос создания группы

adb shell am startservice -n com.mediatek.androidbox/.MiracastService --ez screen_share false

Ищите Enter createGroup, за которым следует createGroup success. Если появляется только Received screen_share tag, intent был обработан, но создание группы не продемонстрировано: проверьте предварительные условия, описанные выше.

4. Запрос очистки и проверка телевизора

adb shell am startservice -n com.mediatek.androidbox/.MiracastService --ez screen_share true

Это отправляет значение очистки, использованное в первоначальном отчёте. Убедитесь, что трансляция и Wi-Fi Direct вернулись в предполагаемое состояние, используя элементы управления телевизора. Получение intent само по себе не является доказательством успешной очистки; при необходимости восстановите приёмник вручную.

Зафиксированные доказательства

Скачать инструмент