A look at an Android ITW DNG exploit
Mis à jour :
Exploitation d’une Vulnérabilité DNG sur Android
Des fichiers image DNG malveillants, distribués via WhatsApp, ont ciblé une bibliothèque d’analyse d’images spécifique aux appareils Samsung, appelée Quram. Ces fichiers DNG exploitaient une vulnérabilité dans cette bibliothèque, permettant l’exécution de code à distance.
Points Clés :
- Vecteur d’Attaque : Les images étaient reçues via WhatsApp. Le processus ciblé était
com.samsung.ipservice, un service Samsung responsable des fonctionnalités basées sur l’IA qui analyse régulièrement les images duMediaStore. - Format de Fichier : Les fichiers étaient déguisés en JPEG mais étaient en réalité des fichiers DNG (Digital Negative), un format RAW pour images.
- Bibliothèque Vulnérable : La bibliothèque Quram, développée par Quramsoft et utilisée par Samsung, est le composant affecté. La vulnérabilité se situait dans le traitement des fichiers DNG par le biais de listes d’opérations (opcodes).
- Mécanisme d’Exploitation : L’exploitation impliquait une série d’opérations DNG hors limites pour manipuler le tas (heap), corrompre les structures de données, et finalement détourner le flux d’exécution pour exécuter une chaîne de gadgets (JOP - Jump-Oriented Programming).
- Objectif Final : L’objectif était d’exécuter une commande shell arbitraire, probablement pour installer un logiciel espion (spyware) et accéder aux données multimédias de l’appareil.
Vulnérabilités Identifiées :
- Bug
DeltaPerColumn: Une mauvaise gestion des paramètresplanedans l’opcodeDeltaPerColumnpermettait des écritures hors limites dans les tampons de pixels.- Impact : Permet d’ajouter des valeurs arbitraires à des offsets contrôlés dans le tampon de pixels bruts.
- Corruption des Dimensions de l’Image : L’exploitation initiale corromptait les champs “bottom” et “right” de l’objet
QuramDngImage.- Impact : Permet à d’autres opcodes (comme
MapTable) d’opérer hors des limites attendues de l’image.
- Impact : Permet à d’autres opcodes (comme
- Confusion de Type (Type Confusion) via Vtable : L’exploitation transformait un objet opcode
TrimBoundsen un objet opcodeMapTableen manipulant son pointeur de vtable. Cela permettait d’utiliser une table de substitution duMapTablepour lire des valeurs depuis la vtable d’un autre objet (TrimBounds), servant à la fuite d’adresses. - Fuite d’Adresses : Des opérations
MapTablecombinées à la corruption de vtable permettaient de lire des pointeurs depuis la vtable deTrimBoundset d’autres zones mémoire, contournant ainsi l’ASLR (Address Space Layout Randomization). - Construction de Chaîne JOP : Une fois les adresses nécessaires obtenues, une chaîne JOP était construite pour finalement appeler la fonction
system()avec une commande shell préparée.
Recommandations :
- Mises à Jour de Sécurité : Appliquer les mises à jour de sécurité de Samsung dès leur disponibilité. La vulnérabilité exploitée a été corrigée dans les mises à jour d’avril 2025 (CVE-2025-21042).
- Vigilance sur les Médias Reçus : Soyez prudent avec les images et autres fichiers reçus via des messageries, même par des contacts connus, surtout si elles proviennent de sources non vérifiées.
- Activation des Mitigations Système : S’assurer que les mécanismes de sécurité du système d’exploitation, tels que le contrôle de flux (PAC, BTI) et Memory Tagging Extension (MTE), sont activés et pleinement fonctionnels sur les appareils. L’absence de ces protections a facilité l’exploitation dans ce cas.
