Dans la bibliothèque libinput 1.20.1, qui fournit une pile d'entrée unifiée permettant d'utiliser les mêmes outils de traitement d'événements des périphériques d'entrée dans des environnements basés sur Wayland et X.Org, une vulnérabilité a été corrigée (CVE-2022-1215) permettant l'exécution de code malveillant lors de la connexion à un système d'un périphérique d'entrée spécialement modifié/émulé. Le problème se manifeste dans des environnements basés sur X.Org et Wayland et peut être exploité aussi bien lors de connexions locales de périphériques que lors de manipulations de périphériques avec une interface Bluetooth. Si le serveur X s'exécute avec des privilèges root, la vulnérabilité permet l'exécution de code avec des privilèges élevés.
Le problème est causé par une erreur de formatage de chaîne dans le code responsable de l’enregistrement des informations de connexion des périphériques. En particulier, la fonction evdev_log_msg modifiait la chaîne de formatage d'origine pour le journal en ajoutant le nom du périphérique en tant que préfixe à l'aide de snprintf. Ensuite, la chaîne modifiée était transmise à la fonction log_msg_va, qui à son tour utilisait la fonction printf. Ainsi, dans le premier argument de printf, qui était soumis à l'analyse des caractères de formatage, des données externes non vérifiées se retrouvaient et un attaquant pouvait provoquer une corruption de la pile en faisant retourner un nom de périphérique contenant des caractères de formatage (par exemple, «Evil %s»).
Source : opennet.ru
