Une vulnérabilité (CVE-2023-43641) a été détectée dans la bibliothèque libcue, utilisée pour analyser les métadonnées relatives à l'ordre et à la durée des pistes audio, permettant l'exécution de code lors du traitement de fichiers cue spécialement conçus. Cette bibliothèque est utilisée dans certains lecteurs multimédias et éditeurs audio, y compris Audacious, et peut être exploitée pour compromettre le système en ouvrant des données non vérifiées.
De plus, la bibliothèque libcue est utilisée dans le moteur de recherche tracker-miners, utilisé dans l'environnement utilisateur GNOME. Comme tracker-miners indexe automatiquement de nouveaux fichiers multimédias dans le répertoire personnel, une simple charge d'un fichier spécialement conçu dans le répertoire ~/Downloads, ~/Music, ou ~/Videos permettrait à un attaquant d'exécuter du code, sans même avoir besoin d'ouvrir le fichier (par exemple, dans certains cas, il suffit de cliquer sur un lien dans le navigateur).
Les chercheurs ayant découvert cette vulnérabilité ont élaboré un exploit fonctionnel et ont démontré la possibilité d'exploiter des environnements basés sur Ubuntu 23.04 et Fedora 38. Le code de l'exploit sera publié ultérieurement pour donner le temps aux utilisateurs d'installer la mise à jour corrigeant la vulnérabilité. L'exploit est stable dans son fonctionnement, mais nécessite une adaptation pour chaque distribution.
La vulnérabilité est causée par un débordement d'entier dans le code d'analyse de la syntaxe du paramètre INDEX, se manifestant lorsque des valeurs numériques trop grandes, ne tenant pas dans le type "int", sont spécifiées pour ce paramètre. La fonction atoi est utilisée pour convertir la chaîne en nombre ; par exemple, en spécifiant le nombre 4294567296, il sera converti en -400000. L'absence de vérification de la valeur obtenue pour s'assurer qu'elle ne peut pas être négative conduit directement à la vulnérabilité. En conséquence, dans le code après la conversion atoi, l'opération "track->index[i] = ind" se produit, où "i" peut être attribué à un nombre négatif pour réécrire une zone mémoire en dehors du tampon avec la valeur "ind", qui est également chargée à partir du fichier traité.
Dans la plupart des distributions avec GNOME, le composant tracker-miners est activé par défaut et chargé comme dépendance stricte du gestionnaire de fichiers Nautilus (GNOME Files). Pour désactiver tracker-miners pour l'utilisateur actuel, vous pouvez utiliser les commandes : systemctl —user mask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service tracker reset —hard
Source : opennet.ru
