In der Bibliothek libinput, die einen einheitlichen Eingabestack für Wayland und den X.Org-Server bereitstellt, wurde eine Schwachstelle (CVE nicht zugeordnet) entdeckt, die es ermöglicht, Code mit Root-Rechten auszuführen, indem ein lokaler Benutzer ein virtuelles Eingabegerät verbindet, das im Benutzermodus über uinput oder uhid emuliert wird. Das Problem wurde in den Versionen 1.31.3 und 1.30.4 behoben.
Die Schwachstelle ist im udev-Handler libinput-device-group vorhanden und
wird durch fehlende ordnungsgemäße Escape-Sequenzen von Sonderzeichen in den von Geräten erhaltenen Attributen verursacht, die in Form von „Schlüssel=Wert“ an das udev-System übermittelt werden. Durch die Einfügung des Zeilenumbruchs („\n“) in das Attribut kann man seine eigene udev-Regel hinzufügen, zum Beispiel durch die Ausführung des uinput-Befehls UI_SET_PHYS(„poc\n<SECOND_KEY>=<value>“). Um beliebige Befehle mit Root-Rechten auszuführen, reicht es aus, auf diese Weise eine udev-Regel mit der Eigenschaft „REMOVE_CMD“ einzufügen, die den angegebenen Befehl nach dem Trennen des Geräts ausführt.
Um die Schwachstelle auszunutzen, muss der Angreifer Zugriff auf das Gerät /dev/uinput oder /dev/uhid haben. Normalerweise hat nur der Benutzer root Zugriff auf uinput und uhid, aber in einigen Distributionen gibt es udev-Regeln, die es unprivilegierten Benutzern ermöglichen, uinput zu verwenden. Zum Beispiel werden in Fedora solche Regeln bei der Installation der Pakete steam-devices, antimicrox und kdeconnectd gesetzt. Ein Exploit-Prototyp ist verfügbar.
Quelle: opennet.ru
