Découverte de 3 vulnérabilités dans le firmware des puces MediaTek DSP

Il y a quelques années jours de libération des chercheurs de Checkpoint la nouvelle qu'ils ont identifié trois vulnérabilités (CVE-2021-0661, CVE-2021-0662, CVE-2021-0663) dans le firmware des puces MediaTek DSP, ainsi qu'une vulnérabilité dans la couche de traitement audio de MediaTek Audio HAL (CVE-2021-0673). En cas d'exploitation réussie des vulnérabilités, un attaquant peut organiser une écoute clandestine de l'utilisateur depuis une application non privilégiée pour la plateforme Android.

En 2021, MediaTek représente environ 37% des expéditions de puces spécialisées pour smartphones et SoC (Selon d'autres données, au deuxième trimestre 2021, la part de MediaTek parmi les fabricants de puces DSP pour smartphones était de 43 %).

Entre autres, les puces MediaTek DSP Ils sont utilisés dans les smartphones phares de Xiaomi, Oppo, Realme et Vivo. Les puces MediaTek, basées sur le microprocesseur Tensilica Xtensa, sont utilisées dans les smartphones pour effectuer des opérations telles que le traitement du son, de l'image et de la vidéo, en informatique pour les systèmes de réalité augmentée, la vision par ordinateur et l'apprentissage automatique, ainsi que pour mettre en œuvre la recharge rapide.

Micrologiciel d'ingénierie inverse pour les puces DSP de MediaTek basé sur la plate-forme FreeRTOS a révélé diverses façons d'exécuter du code du côté du micrologiciel et de prendre le contrôle des opérations DSP en envoyant des requêtes spécialement conçues à partir d'applications non privilégiées pour la plate-forme Android.

Des exemples pratiques d'attaques ont été démontrés sur un Xiaomi Redmi Note 9 5G équipé du SoC MediaTek MT6853 (Dimensity 800U). Il est à noter que les OEM ont déjà reçu des correctifs de vulnérabilité dans la mise à jour du micrologiciel d'octobre de MediaTek.

Le but de nos recherches est de trouver un moyen d'attaquer le DSP audio Android. Tout d'abord, nous devons comprendre comment Android fonctionnant sur le processeur d'application (AP) communique avec le processeur audio. De toute évidence, il doit y avoir un contrôleur qui attend les demandes de l'espace utilisateur Android, puis à l'aide d'une sorte de communication interprocesseur (IPC) transmet ces demandes au DSP pour traitement.

Nous avons utilisé un smartphone Xiaomi Redmi Note 9 5G rooté basé sur le chipset MT6853 (Dimensity 800U) comme appareil de test. Le système d'exploitation est MIUI Global 12.5.2.0 (Android 11 RP1A.200720.011).

Comme il n'y a que quelques pilotes liés aux médias sur l'appareil, il n'a pas été difficile de trouver le pilote responsable de la communication entre le point d'accès et le DSP.

Parmi les attaques pouvant être menées en exécutant son code au niveau du firmware de la puce DSP :

  • Contournement du système de contrôle d'accès et élévation de privilèges : capture invisible de données telles que photos, vidéos, enregistrements d'appels, données d'un microphone, GPS, etc.
  • Déni de service et actions malveillantes : bloquer l'accès aux informations, désactiver la protection contre la surchauffe lors de la charge rapide.
  • Masquer les activités malveillantes - Créez des composants malveillants complètement invisibles et indélébiles qui s'exécutent au niveau du micrologiciel.
  • Attachez des balises pour espionner un utilisateur, par exemple en ajoutant des balises subtiles à une image ou à une vidéo, puis en associant les données publiées à l'utilisateur.

Les détails de la vulnérabilité dans MediaTek Audio HAL n'ont pas encore été révélés, mais jecomme trois autres vulnérabilités dans le micrologiciel DSP sont causés par un contrôle de bord incorrect lors du traitement des messages IPI (Inter-Processor Interrupt) envoyé par le pilote audio audio_ipi au DSP.

Ces problèmes permettent de provoquer un débordement de tampon contrôlé dans les gestionnaires fournis par le firmware, dans lesquels les informations sur la taille des données transmises ont été extraites d'un champ au sein du paquet IPI, sans vérifier la taille réelle allouée dans la mémoire partagée .

Pour accéder au contrôleur pendant les expériences, nous utilisons des appels ioctls directs ou la bibliothèque /vendor/lib/hw/audio.primary.mt6853.so, qui sont inaccessibles aux applications Android classiques. Cependant, les chercheurs ont trouvé une solution pour envoyer des commandes basée sur l'utilisation d'options de débogage disponibles pour les applications tierces.

Les paramètres spécifiés peuvent être modifiés en appelant le service Android AudioManager pour attaquer les bibliothèques MediaTek Aurisys HAL (libfvaudio.so), qui fournissent des appels pour interagir avec le DSP. Pour bloquer cette solution, MediaTek a supprimé la possibilité d'utiliser la commande PARAM_FILE via AudioManager.

Enfin si vous souhaitez en savoir plus, vous pouvez vérifier les détails dans le lien suivant.


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.