Une vulnérabilité a été identifiée dans la bibliothèque libinput, qui fournit une pile d'entrée unifiée pour Wayland et X.Org Server (CVE non attribué), permettant l'exécution de code avec les droits root par le biais de la connexion d'un utilisateur local à un périphérique d'entrée virtuel, émulé dans l'espace utilisateur via uinput ou uhid. Le problème a été corrigé dans les versions 1.31.3 et 1.30.4.
La vulnérabilité est présente dans le gestionnaire udev de libinput-device-group et
est causée par un manque de proper échappement des caractères spéciaux dans les attributs reçus des périphériques et transmis au sous-système udev sous la forme « clé=valeur ». En injectant un caractère de retour à la ligne («\n») dans un attribut, un attaquant peut ajouter sa propre règle udev, par exemple, en exécutant la commande uinput UI_SET_PHYS(« poc\n<SECOND_KEY>=<value>»). Pour exécuter des commandes arbitraires avec les droits root, il suffit d'injecter ainsi une règle udev avec la propriété « REMOVE_CMD », qui lancera la commande spécifiée après la déconnexion du périphérique.
Pour exploiter cette vulnérabilité, l'attaquant doit avoir accès au périphérique /dev/uinput ou /dev/uhid. En général, seul l'utilisateur root a accès à uinput et uhid, mais certaines distributions incluent des règles udev permettant aux utilisateurs non privilégiés d'utiliser uinput. Par exemple, dans Fedora, de telles règles sont mises en place lors de l'installation des paquets steam-devices, antimicrox et kdeconnectd. Un prototype d'exploit est disponible.
Source : opennet.ru
