Уразлівасць у libinput, якая прыводзіць да выканання кода пры падлучэнні шкоднаснай прылады

У бібліятэцы libinput 1.20.1, якая прадстаўляе уніфікаваны стэк уводу, які дазваляе выкарыстоўваць адны і тыя ж сродкі апрацоўкі падзей ад прылад уводу ў асяроддзі на базе Wayland і X.Org, ухіленая ўразлівасць (CVE-2022-1215), якая дазваляе арганізаваць выкананне свайго кода падлучэнні да сістэмы адмыслова мадыфікаванай/эмуляванай прылады ўводу. Праблема выяўляецца ў асяроддзі на базе X.Org і Wayland, і можа быць эксплуатаваная як пры лакальным падлучэнні прылад, так і пры маніпуляцыях з прыладамі з інтэрфейсам Bluetooth. У выпадку выканання X-сервера з правамі root уразлівасць дазваляе дамагчыся выкананні кода з падвышанымі прывілеямі.

Праблема выклікана памылкай фарматавання радка ў кодзе, які адказвае за выснову ў лог інфармацыі аб падлучэнні прылады. У прыватнасці, функцыя evdev_log_msg пры дапамозе выкліку snprintf змяняла зыходны радок фарматавання запісу для лога, у які ў якасці прэфікса дадавалася імя прылады. Далей зменены радок перадавалася ў функцыю log_msg_va, якая ў сваю чаргу выкарыстоўвала функцыю printf. Такім чынам, у першым аргуменце printf, да якога ўжываецца разбор сімвалаў фарматавання, апыняліся неправераныя вонкавыя дадзеныя і атакавалы мог ініцыяваць пашкоджанне стэка, арганізаваўшы вяртанне прыладай імя, утрымоўвальнай знакі фарматавання радка (напрыклад, «Evil %s»).

Крыніца: opennet.ru

Дадаць каментар