Wayland үшін төте жол менеджері swhkd ішіндегі осалдықтар

Уақытша файлдармен, пәрмен жолы параметрлерімен және Unix ұяшықтарымен дұрыс жұмыс істемеуден туындаған swhkd (Simple Wayland HotKey Daemon) жүйесінде бірқатар осалдықтар анықталды. Бағдарлама Rust тілінде жазылған және Wayland протоколына (X11 негізіндегі орталарда қолданылатын sxhkd процесінің конфигурация файлымен үйлесімді аналогы) негізделген орталарда жылдам пернені басқарады.

Бума жылдам перне әрекеттерін орындайтын артықшылықсыз swhks процесін және түбір ретінде жұмыс істейтін және uinput API деңгейінде енгізу құрылғыларымен әрекеттесетін фондық swhkd процесін қамтиды. Unix ұясы swhks және swhkd арасындағы әрекеттесуді ұйымдастыру үшін пайдаланылады. Polkit ережелерін пайдалана отырып, кез келген жергілікті пайдаланушы /usr/bin/swhkd процесін түбір ретінде іске қосып, оған ерікті параметрлерді бере алады.

Анықталған осалдықтар:

  • CVE-2022-27815 – процестің PID кодын болжалды аты бар файлға және басқа пайдаланушылар жаза алатын каталогқа сақтау (/tmp/swhkd.pid). Кез келген пайдаланушы /tmp/swhkd.pid файлын жасай алады және оған бар процестің pid кодын қоя алады, бұл swhkd іске қосу мүмкін емес. /tmp ішінде символдық сілтемелер жасаудан қорғау болмаса, осалдықты кез келген жүйелік каталогтағы файлдарды жасау немесе қайта жазу (PID файлға жазылады) немесе жүйедегі кез келген файлдың мазмұнын анықтау үшін (swhkd басып шығарады) PID файлының барлық мазмұнын stdout файлына). Бір қызығы, шығарылған түзетуде PID файлы /run каталогына емес, ол да тиесілі емес /etc каталогына (/etc/swhkd/runtime/swhkd_{uid}.pid) жылжытылды.
  • CVE-2022-27814 – Конфигурация файлын көрсету үшін пайдаланылатын «-c» пәрмен жолы опциясын басқару арқылы жүйеде кез келген файлдың бар екенін анықтауға болады. Мысалы, /root/.somefile файлын тексеру үшін “pkexec /usr/bin/swhkd -d -c /root/.somefile” іске қосуға болады және файл жоқ болса, “/root/.somefile жоқ” қатесі ” көрсетіледі. Бірінші осалдық жағдайындағыдай, мәселені шешу жұмбақ болып табылады - мәселені шешу сыртқы утилита «мысық» («Command::new («/bin/cat»))).arg(жол) енді конфигурация файлын оқу үшін іске қосылды. output()').
  • CVE-2022-27819 – Мәселе сонымен қатар файл өлшемі мен түрін тексермей-ақ бүкіл конфигурация файлының жүктелуіне және талдануына әкелетін «-c» опциясын пайдалануға қатысты. Мысалы, бос жад таусылып, жалған енгізу/шығару жасау арқылы қызмет көрсетуден бас тарту үшін іске қосу кезінде блоктау құрылғысын («pkexec /usr/bin/swhkd -d -c /dev/sda») көрсетуге болады немесе деректердің шексіз ағынын шығаратын таңбалы құрылғы . Мәселе файлды ашпас бұрын артықшылықтарды қалпына келтіру арқылы шешілді, бірақ түзету аяқталмады, себебі тек пайдаланушы идентификаторы (UID) қалпына келтірілді, бірақ топ идентификаторы (GID) өзгеріссіз қалады.
  • CVE-2022-27818 – Unix ұясы жазылатын каталогта жасалған /tmp/swhkd.sock файлы арқылы жасалады, бұл бірінші осалдық сияқты мәселелерге әкеледі (кез келген пайдаланушы /tmp/swhkd.sock жасай алады және жасай алады немесе ұстай алады) пернені басу оқиғалары).
  • CVE-2022-27817 - Енгізу оқиғалары барлық құрылғылардан және барлық сеанстарда қабылданады, яғни. басқа Wayland сеансынан немесе консольден пайдаланушы жылдам пернелерді басқа пайдаланушылар басқан кезде оқиғаларды ұстай алады.
  • CVE-2022-27816 swhks процесі, swhkd сияқты, жазылатын /tmp каталогындағы /tmp/swhks.pid PID файлын пайдаланады. Мәселе бірінші осалдыққа ұқсас, бірақ онша қауіпті емес, себебі swhks артықшылығы жоқ пайдаланушыда жұмыс істейді.

Ақпарат көзі: opennet.ru

пікір қалдыру