V knižnici libinput, ktorá poskytuje zjednotenú vstupnú platformu pre Wayland a X.Org Server, bola zistená zraniteľnosť (CVE nebol pridelený), umožňujúca vykonávanie kódu s právami root cez pripojenie lokálneho používateľa k virtuálnemu vstupnému zariadeniu simulovanému v užívateľskom priestore cez uinput alebo uhid. Problém bol odstránený vo verziách 1.31.3 a 1.30.4.
Zraniteľnosť je prítomná v udev spracovateľovi libinput-device-group a
je spôsobená nedostatočným escaping špeciálnych znakov v atribútoch prijímaných od zariadení a prenášaných do subsystému udev vo forme "kľúč=hodnota". Cez substitúciu znaku nového riadku ("\n") do atribútu, je možné pridať vlastné pravidlo udev, napríklad vykonaním príkazu uinput UI_SET_PHYS("poc\n<SECOND_KEY>=<value>"). Na vykonanie ľubovoľných príkazov s právami root stačí takýmto spôsobom zadať pravidlo udev so vlastnosťou "REMOVE_CMD", ktorá spúšťa zadaný príkaz po odpojení zariadenia.
Na zneužitie zraniteľnosti musí útočník mať prístup k zariadeniu /dev/uinput alebo /dev/uhid. Spravidla má prístup k uinput a uhid iba používateľ root, ale v niektorých distribúciách sú dodávané pravidlá udev, ktoré umožňujú neoprávneným používateľom používať uinput. Napríklad v Fedore sú takéto pravidlá nastavené pri inštalácii balíkov steam-devices, antimicrox a kdeconnectd. Je dostupný prototyp exploitu.
Zdroj: opennet.ru
