Des informations sur cinq vulnérabilités dans les bibliothèques libX11 et libXpm, développées par le projet X.Org, ont été publiées. Les problèmes sont résolus dans les versions libXpm 3.5.17 et libX11 1.8.7. Trois vulnérabilités ont été identifiées dans la bibliothèque libX11, qui offre des fonctions avec une implémentation client du protocole X11 :
- CVE-2023-43785 — un dépassement de tampon dans le code libX11, qui se manifeste lors du traitement d'une réponse du serveur X avec un nombre de caractères ne correspondant pas à la requête précédemment envoyée XkbGetMap. La vulnérabilité est causée par une erreur dans X11R6.1, existant depuis 1996. Elle peut être exploitée lors de la connexion d'une application utilisant libX11 à un serveur X malveillant ou à un proxy intermédiaire contrôlé par un attaquant.
- CVE-2023-43786 — l'épuisement de la pile résultant d'une récursivité infinie dans la fonction PutSubImage() dans libX11, se produisant lors du traitement de données spécialement formatées au format XPM. La vulnérabilité existe depuis la sortie de X11R2 en février 1988.
- CVE-2023-43787 — un débordement entier dans la fonction XCreateImage() dans libX11, entraînant un débordement de mémoire à cause d'une erreur dans le calcul de la taille, ne correspondant pas à la taille réelle des données. La fonction problématique XCreateImage() est appelée à partir de la fonction XpmReadFileToPixmap(), ce qui permet d'exploiter la vulnérabilité lors du traitement d'un fichier spécialement formaté en XPM. Cette vulnérabilité existe également depuis X11R2 (1988).
De plus, deux vulnérabilités ont été révélées dans la bibliothèque libXpm (CVE-2023-43788 et CVE-2023-43789), résultant de la possibilité de lire à partir de zones en dehors des frontières de la mémoire allouée. Les problèmes se manifestent lors du chargement d'un commentaire à partir d'un tampon en mémoire et du traitement d'un fichier XPM avec une carte de couleurs incorrecte. Les deux vulnérabilités datent de 1998 et ont été découvertes grâce à l'application d'outils de détection des erreurs de gestion de la mémoire et de tests de fuzzing avec AddressSanitizer et libFuzzer.
X.org a des problèmes de sécurité historiques, par exemple il y a dix ans, lors de la 30e conférence Chaos Communication Congress (CCC), lors d'une présentation du chercheur en sécurité Ilja van Sprundel, la moitié de la présentation était consacrée aux problèmes dans le serveur X.Org, et l'autre moitié de la sécurité des bibliothèques clientes X11. Dans le rapport d'Ilya, qui a mis en lumière 30 vulnérabilités touchant différentes bibliothèques clientes X11, ainsi que les composants DRI de Mesa, on trouvait des déclarations émotionnelles telles que « GLX est un horrible démotivateur ! 80 000 lignes de pur désastre ! » et « Au cours des derniers mois, j'ai trouvé 120 erreurs et je n'ai pas encore terminé la vérification ».
Source : opennet.ru
