Les fichiers d’indexation des CD sont le cœur d’une grave exploitation de code à distance sous Linux.

Ça fait très longtemps que l’utilisateur moyen d’ordinateur ne s’est plus inquiété des fichiers .cue, ou des feuilles de cue, ces métadonnées qui décrivent les pistes d’un disque optique, comme un CD ou un DVD. Mais les feuilles de cue attirent à nouveau l’attention, et pour de mauvaises raisons. Elles sont au cœur d’une faille qu’il suffit d’une seule action pour exploiter, et qui pourrait permettre à un attaquant d’exécuter du code sur les systèmes Linux avec les environnements de bureau GNOME. CVE-2023-43641, découverte par GitHub le 9 octobre, est une question de corruption de la mémoire (ou d’écriture en dehors des limites d’un tableau), dans la bibliothèque libcue, qui analyse les feuilles de cue. NIST n’a pas encore fourni de note pour cette question, mais la soumission de GitHub lui attribue une note de 8,8, soit « Haute ». Bien que la vulnérabilité ait été corrigée dans la bibliothèque centrale, les distributions Linux devront mettre à jour leurs environnements de bureau pour la corriger. Les environnements de bureau GNOME ont, par défaut, un « tracker miner » qui se met à jour automatiquement chaque fois que certains emplacements de fichiers dans le dossier personnel d’un utilisateur sont modifiés. Si un utilisateur était amené à télécharger une feuille de cue qui profitait de la vulnérabilité de libcue, le tracker d’indexation de GNOME lirait la feuille de cue, et du code contenu dans cette feuille pourrait être exécuté. Kevin Backhouse, membre du Security Lab de GitHub, propose une vidéo de démonstration de l’exploit dans son blog, mais n’a pas encore publié le concept de preuve permettant de le corriger. Vous pouvez tester votre système pour voir s’il est vulnérable à l’aide d’une feuille de cue de test qu’il propose, qui devrait provoquer « un plantage bénin ». La faille est spécifique à la façon dont libcue lit l’index d’une piste de disque ou son numéro et sa longueur. En raison des outils système qu’elle utilise, vous pouvez tromper libcue pour qu’elle enregistre un nombre négatif pour un index. Ensuite, parce qu’une autre partie de la routine de balayage ne vérifie pas si un numéro d’index est négatif avant de l’écrire dans un tableau, un attaquant peut écrire en dehors des limites du tableau. La solution proposée par Backhouse ajoute une simple condition de vérification à la routine de définition de l’index.

Share the Post: