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

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

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.

Репозиторий
2 дней назадЕщё не проверено

Популярное

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

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

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

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

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

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.

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

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

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

Анализ манифеста, зафиксированный в первоначальном отчёте, показывает, что 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. Мониторинг сервиса

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

root@kitploit:~
adb logcat | grep -i -E 'screen_share|createGroup|removeGroup'

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

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

root@kitploit:~
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. Запрос создания группы

root@kitploit:~
adb shell am startservice -n com.mediatek.androidbox/.MiracastService --ez screen_share false

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

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

root@kitploit:~
adb shell am startservice -n com.mediatek.androidbox/.MiracastService --ez screen_share true

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

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

Следующий фрагмент logcat был записан на протестированном телевизоре 10 марта 2026 года. Это доказательство из первоначального исследования, а не новый тест, выполненный для этой публикации.

root@kitploit:~
03-10 19:40:27.458 30288 30288 I MiracastService: Received screen_share tag: false
03-10 19:40:27.460 30288 30288 D MiracastService:  Enter createGroup
03-10 19:40:27.530 30288 30288 D MiracastService:  createGroup success
03-10 19:41:19.148 30288 30288 I MiracastService: Received screen_share tag: true

Первые три строки показывают получение параметра, вход в путь создания группы и успешный callback. Последняя строка показывает получение true; она не содержит callback об успешном удалении. PID 30288 виден, но UID процесса и идентификатор вызывающей стороны в этом фрагменте не зафиксированы.

Затронутая область

Моё воспроизведение ограничено конфигурацией PEAQ AI PONT, указанной выше. Бюллетень MediaTek перечисляет затронутые чипсеты помимо этого устройства; обратитесь к записи вендора о CVE-2026-20516 для авторитетной области. Включение чипсета не определяет, получил ли конкретный розничный телевизор исправление прошивки от OEM.

Именование пакета и APK предполагало общий компонент MediaTek/Changhong во время первоначального исследования. Это наблюдение само по себе не устанавливает наличие этого экспортированного сервиса на каждом телевизоре на базе MediaTek.

Устранение

Владельцам устройств следует получить прошивку, содержащую соответствующее исправление, от производителя телевизора. MediaTek идентифицирует исправления как ALPS11060069 / DTV04881615; ни одна исправленная версия прошивки PEAQ не была проверена в рамках этой статьи.

Сопровождающим компонента следует устранить внешнее воздействие с помощью android:exported="false", если внешние вызывающие стороны не нужны. Если требуется доверенный межприложенческий доступ, защитите сервис соответствующим разрешением уровня подписи и обеспечьте авторизацию перед изменением состояния приёмника. Проверьте все точки входа и побочные эффекты жизненного цикла, включая записи в защищённые настройки.

Это рекомендации по усилению защиты из анализа, а не описание неопубликованного патча вендора. Проверьте результат, используя как обычный UID приложения, так и легитимные клиенты трансляции.

Хронология раскрытия и благодарности

ДатаСобытие
10 марта 2026Первоначальное воспроизведение на устройстве и запись logcat.
7 сентября 2026MediaTek опубликовала свой сентябрьский бюллетень, содержащий CVE-2026-20516.
11 сентября 2026Публичная статья и PoC после периода раскрытия и одобрения вендора.

Обнаружено и о сообщено Davide Di Matteo. Спасибо MediaTek за координацию раскрытия и признание исследования в своих благодарностях за сентябрь 2026 года.

Ссылки

  • MediaTek — September 2026 Security Bulletin
  • MediaTek — Security Acknowledgements
  • CVE.org — CVE-2026-20516
  • Tenable — CVE-2026-20516
  • The Hacker Wire — CVE-2026-20516
Скачать инструмент
ПолеЗначение
Устройство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