V knihovně libinput 1.20.1, která poskytuje unifikovanou vrstvu pro vstup, umožňující jednotné zpracování událostí ze vstupních zařízení v prostředích založených na Wayland a X.Org, byla odstraněna zranitelnost (CVE-2022-1215), která umožňuje vykonat vlastní kód při připojení speciálně modifikovaného/emulovaného vstupního zařízení k systému. Problém se projevuje v prostředích založených na X.Org a Wayland a lze jej zneužít jak při místním připojení zařízení, tak při manipulaci s zařízeními s rozhraním Bluetooth. V případě spuštění X-serveru s právy roota umožňuje zranitelnost dosáhnout provádění kódu s vyššími privilegii.
Problém je způsoben chybou formátování řetězce v kódu, který je zodpovědný za logování informací o připojení zařízení. Konkrétně funkce evdev_log_msg pomocí volání snprintf měnila původní formátovací řetězec pro log, do kterého jako prefix přidávala název zařízení. Následně byl modifikovaný řetězec předán funkci log_msg_va, která následně používala funkci printf. Tímto způsobem se v prvním argumentu printf, ke kterému je aplikováno rozparsování formátovacích znaků, objevila neověřená externí data, a útočník mohl iniciovat poškození zásobníku tím, že by zařízení vrátilo název obsahující formátovací znaky (například „Evil %s“).
Zdroj: opennet.ru
