V knihovně libinput, která poskytuje sjednocený vstupní stack pro Wayland a X.Org Server, byla nalezena zranitelnost (CVE nebyl přiřazen), která umožňuje spuštění kódu s právy roota prostřednictvím připojení lokálního uživatele k virtuálnímu vstupnímu zařízení simulovanému v uživatelském prostoru pomocí uinput nebo uhid. Problém byl vyřešen ve verzích 1.31.3 a 1.30.4.
Zranitelnost je přítomna v udev zpracovateli libinput-device-group a
je způsobena nedostatečným escapováním speciálních znaků v atributech získaných z zařízení, které jsou předávány subsystému udev ve formátu "klíč=hodnota". Pomocí substituce znaku nového řádku ("\n") do atributu lze dosáhnout přidání vlastního pravidla udev, například prostřednictvím vykonání uinput příkazu UI_SET_PHYS("poc\n<DRUHÝ_KLÍČ>=<hodnota>"). Pro vykonání libovolných příkazů s právy roota stačí tímto způsobem vložit pravidlo udev s vlastností "REMOVE_CMD", která spustí zadaný příkaz po odpojení zařízení.
K využití zranitelnosti musí útočník mít přístup k zařízení /dev/uinput nebo /dev/uhid. Obvykle má přístup k uinput a uhid pouze uživatel root, ale v některých distribucích jsou dodávána udev pravidla, která umožňují nepřihlašovaným uživatelům používat uinput. Například v Fedoře se tato pravidla instalují při instalaci balíčků steam-devices, antimicrox a kdeconnectd. Je dostupný prototyp exploitu.
Zdroj: opennet.ru
