Des chercheurs de l'équipe Google Project Zero ont analysé en détail la technique permettant de créer un exploit fonctionnel, capable d'exécuter du code à distance avec des privilèges du noyau Linux, en envoyant un message SMS ou RCS contenant une pièce jointe audio spécialement conçue. L'attaque se déroule sans effectuer d'actions de la part de l'utilisateur, ne nécessitant même pas l'affichage ou l'écoute du message reçu.
L'exploit utilise deux vulnérabilités : dans la bibliothèque Dolby Unified Decoder (CVE-2025-54957) et dans le pilote bigwave pour le noyau Linux (CVE-2025-36934). Auparavant, pour exploiter les vulnérabilités dans les codecs, il était nécessaire que l'utilisateur écoute ou visionne le contenu malveillant reçu. Avec l'intégration des assistants AI dans les dernières versions des firmwares Android, le contenu multimédia reçu est automatiquement décodé après réception, augmentant considérablement la surface d'attaque ne nécessitant aucune action de l'utilisateur (0-click). Dans le contexte des messages audio SMS et RCS, l'application Google Messages, à l'aide du service com.google.android.tts, génère automatiquement une transcription pour l'application aux messages audio, permettant d'exploiter sans l'intervention de l'utilisateur les vulnérabilités dans les codecs audio existants.
Le problème dans Dolby Unified Decoder est causé par un débordement d'entier lors du calcul de la taille du tampon pour les structures de données syncframe traitées, ce qui peut être utilisé pour écrire au-delà du tampon alloué. En conséquence, un pointeur utilisé lors du traitement du cadre de synchronisation suivant peut être écrasé, et son altération permet ensuite de réécrire, avec des données contrôlées par l'attaquant, un pointeur vers une fonction et ainsi d'organiser l'exécution de son propre code avec des privilèges « mediacodec », limités par SELinux.
Pour exploiter le noyau Linux, une vulnérabilité dans le pilote bigwave, responsable de la gestion de l'appareil spécial /dev/bigwave, a été exploitée, auquel l'accès a été ouvert depuis le contexte SELinux « mediacodec ». Cette vulnérabilité permettait d'écraser des structures du noyau par des manipulations de l'appel ioctl BIGO_IOCX_PROCESS et d'atteindre l'exécution de code avec des privilèges du noyau.
Une vulnérabilité dans la bibliothèque Dolby Unified Decoder (libcodec2_soft_ddpdec.so), qui fournit des fonctions de décodage pour les formats Dolby Digital (DD, AC-3) et Dolby Digital Plus (DD+, EAC-3), n’est pas spécifique à Android et au firmware du Pixel 9, et se manifeste également sur d'autres plateformes (Samsung S24, MacBook Air M1, iPhone 17 Pro, Windows, ChromeOS, etc.). Dans le dépôt AOSP d'Android et le firmware du Samsung S24, un filtre seccomp des appels système est appliqué aux processus exécutés dans le contexte de mediacodec, rendant plus difficile l'exploitation ultérieure des vulnérabilités dans le noyau. Dans le firmware du Pixel 9, un tel filtre était absent. De l'attaque pourrait protéger le mécanisme de Memory Tagging (MTE), mais il est disponible pour les appareils Pixel 8+ uniquement sous forme d’option activée lors de l’activation du mode « Protection Avancée ». Dans macOS et iOS, l'exploitation est compliquée par la compilation de la bibliothèque avec le drapeau « -fbounds-safet », qui ajoute des vérifications supplémentaires pour éviter de sortir des limites des tableaux, réduisant ainsi la performance.
Les chercheurs examinent séparément les problèmes de déploiement de la réparation de la vulnérabilité dans le Dolby Unified Decoder. Les informations concernant la vulnérabilité ont été divulguées publiquement 82 jours avant que la réparation ne soit accessible aux utilisateurs des appareils Pixel. La société Dolby a été informée du problème le 26 juin 2025. La première correction binaire a été publiée le 18 septembre pour ChromeOS, mais pour les appareils Android, Dolby n’a fourni des patches binaires que le 8 octobre. Les informations sur la vulnérabilité ont été divulguées publiquement le 15 octobre. Le 12 novembre, Samsung a publié une correction et ce n’est que le 5 janvier qu'une correction a été publiée pour les appareils Pixel. La distribution du patch pour tous les appareils Android a nécessité 139 jours.
Une vulnérabilité a été identifiée dans le Dolby Unified Decoder en moins de deux jours, et dans le pilote BigWave en moins d'une journée d'examen. Les efforts de développement d'un exploit opérationnel pour la vulnérabilité dans le Dolby Unified Decoder sont évalués à 8 semaines avec un chercheur, tandis que pour BigWave, cela prend 3 semaines. Dans le rapport publié le 14 octobre par Dolby, la vulnérabilité du Dolby Unified Decoder a été classée comme ayant un faible niveau de danger, malgré la transmission des détails concernant l'exploit en développement. La vulnérabilité de BigWave a reçu un niveau de danger modéré (Moderate) dans Android, motivé par le fait qu'une attaque n'est possible qu'à partir de contenu privilégié et n'est pas accessible dans des contextes non privilégiés (au bout de trois mois, le statut de cette vulnérabilité a été changé en « problème critique »).
Source : opennet.ru
