Уязвимость в libinput, позволяющая повысить свои привилегии в системе

В библиотеке libinput, предоставляющей унифицированный стек ввода для Wayland и X.Org Server, выявлена уязвимость (CVE не назначен), позволяющая добиться выполнения кода с правами root через подключение локальным пользователем виртуального устройства ввода, сэмулированного в пользовательском пространстве через uinput или uhid. Проблема устранена в выпусках 1.31.3 и 1.30.4.

Уязвимость присутствует в udev-обработчике libinput-device-group и
вызвана отсутствием должного экранирования спецсимволов в атрибутах, получаемых от устройств и передаваемых в подсистему udev в форме «ключ=значение». Через подстановку символа перевода строки («n») в атрибут, можно добиться добавления своего правила udev, например, через выполнение uinput-команды UI_SET_PHYS(«pocn‹SECOND_KEY›=‹value›»). Для выполнения произвольных команд с правами root достаточно подобным способом подставить udev-правило со свойством «REMOVE_CMD», запускающем указанную команду после отключения устройства.

Для эксплуатации уязвимости атакующий должен иметь доступ к устройству /dev/uinput или /dev/uhid. Обычно доступ к uinput и uhid имеет только пользователь root, но в некоторых дистрибутивах поставляются udev-правила, позволяющие непривилегированным пользователям использовать uinput. Например, в Fedora подобные правила выставляются при установке пакетов steam-devices, antimicrox и kdeconnectd. Доступен прототип эксплоита.

Источник: http://www.opennet.ru/opennews/art.shtml?num=65615