V knižnici libinput 1.20.1, ktorá poskytuje unified input stack umožňujúci využívať rovnaké prostriedky spracovania udalostí z vstupných zariadení v prostrediach založených na Waylande a X.Org, bola odstránená zraniteľnosť (CVE-2022-1215), ktorá umožňuje vykonanie vlastného kódu pri pripojení špeciálne modifikovaného /emulovaného vstupného zariadenia k systému. Problém sa prejavuje v prostrediach založených na X.Org a Waylande a môže byť zneužitý ako pri lokálnom pripojení zariadení, tak aj pri manipuláciách so zariadeniami s rozhraním Bluetooth. Ak je X-server spustený s právami roota, zraniteľnosť umožňuje dosiahnuť vykonanie kódu s vyššími oprávneniami.
Problém je spôsobený chybou formátovania reťazca v kóde zodpovedajúcom za výstup do logu informácií o pripojení zariadenia. Konkrétne, funkcia evdev_log_msg pomocou volania snprintf menila pôvodný formátovací reťazec záznamu do logu, do ktorého ako prefix pridávalo meno zariadenia. Následne sa upravený reťazec odovzdal funkcii log_msg_va, ktorá opäť využila funkciu printf. Tým sa v prvom argumente printf, na ktorý sa aplikuje parsovanie formátovacích znakov, ocitli neoverené externé dáta a útočník mohol iniciovať poškodenie zásobníka, pričom zariadenie vrátilo meno obsahujúce formátovacie znaky reťazca (napríklad „Evil %s“).
Zdroj: opennet.ru
