Des mises à jour correctrices pour X.Org Server 21.1.12 et le composant DDX (Device-Dependent X) xwayland 23.2.5 ont été publiées, permettant le démarrage de X.Org Server pour exécuter des applications X11 dans des environnements basés sur Wayland. Dans cette nouvelle version de X.Org Server, quatre vulnérabilités ont été corrigées. L'une d'elles peut être exploitée pour élever les privilèges dans les systèmes où le serveur X s'exécute avec des droits root, et également pour une exécution de code à distance dans des configurations où l'accès est effectué via le redirection de la session X11 à l'aide de SSH.
Les trois autres vulnérabilités peuvent entraîner une fuite de contenu de mémoire de serveurs ou un plantage. Ces trois vulnérabilités sont exploitées par l'utilisation d'un ordre des octets différent sur le client par rapport à le serveur. Par conséquent, la nouvelle version propose la possibilité de bloquer les connexions des clients de systèmes ayant un ordre des octets différent. Pour désactiver cela, vous pouvez utiliser le paramètre de configuration «AllowByteSwappedClients» ou l'option de ligne de commande «+byteswappedclients».
Modifier la valeur par défaut permet de se protéger contre d'éventuelles vulnérabilités non encore découvertes, manipulant l'ordre des octets. L'essence de ces vulnérabilités réside dans le fait que la modification de l'ordre des octets pour des valeurs de taille entraîne leur mauvaise interprétation et une lecture ou écriture dans la mémoire d'une taille nettement plus grande que celle du tampon alloué.
Par défaut, le support des clients avec un autre ordre des octets est encore maintenu, bien que dans la pratique, la conversion de l'ordre des octets ait été très peu utilisée ces derniers temps, car les stations de travail sur lesquelles le serveur X est exécuté sont généralement équipées de processeurs avec un ordre des octets little-endian (de l'octet le moins significatif à l'octet le plus significatif) et la connexion à eux de clients X avec un ordre big-endian, comme la plateforme s390x (IBM zSystems), est extrêmement rare.
Problèmes identifiés :
- CVE-2024-31080, CVE-2024-31081, CVE-2024-31082 — lecture de données à partir d'une zone hors tampon via des manipulations des fonctions ProcXIGetSelectedEvents, ProcXIPassiveGrabDevice et ProcAppleDRICreatePixmap, qui utilisent un champ de taille sans tenir compte de l'ordre des octets dans la valeur transmise par le client. Par conséquent, lorsque l'ordre des octets diffère entre le client et le serveur, les fonctions renvoient plus de données au client. Les deux premiers problèmes apparaissent à partir de la version xorg-server-1.7.0 (2009), et le troisième à partir de xorg-server-1.15.0 (2012).
- CVE-2024-31083 — accès à une mémoire déjà libérée (User-after-free) dans la fonction ProcRenderAddGlyphs, qui appelle la fonction AllocateGlyph() pour stocker de nouveaux glyphes transmis par le client. La fonction AllocateGlyph() renvoie un nouveau glyphe avec un compteur de références nul (refcount=0), et la réassignation du glyphe n'augmente pas le compteur de références, ce qui entraîne un tableau glyph_new pouvant contenir plusieurs entrées pointant vers un glyphe sans compteur de références. Lors de la libération de la mémoire allouée pour le glyphe par la fonction ProcRenderAddGlyphs(), un pointeur supplémentaire vers le glyphe reste dans le tableau et peut être utilisé alors que la mémoire a déjà été libérée. Ce problème se manifeste dans X.Org Server et n'affecte pas xwayland.
Source : opennet.ru
