Wayland үчүн кыска жол менеджери болгон swhkd ичиндеги аялуу

Убактылуу файлдар, командалык сап параметрлери жана Unix розеткалары менен туура эмес иштөөдөн улам келип чыккан бир катар алсыздыктар swhkd (Simple Wayland HotKey Daemon) аныкталган. Программа Rust тилинде жазылган жана Wayland протоколуна негизделген чөйрөлөрдө ысык баскычтарды басууну башкарат (X11 негизиндеги чөйрөлөрдө колдонулган sxhkd процессинин конфигурация файлына шайкеш аналогу).

Пакетте тез баскычтардын аракеттерин аткарган артыкчылыксыз swhks процесси жана uinput API деңгээлинде киргизүү түзмөктөрү менен өз ара аракеттенүүчү тамыр катары иштеген фондо swhkd процесси камтылган. Unix розеткасы swhks жана swhkd ортосундагы өз ара аракеттенүүнү уюштуруу үчүн колдонулат. Polkit эрежелерин колдонуу менен, каалаган жергиликтүү колдонуучу /usr/bin/swhkd процессин root катары иштетип, ага ыктыярдуу параметрлерди өткөрүп бере алат.

Белгиленген кемчиликтер:

  • 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 жок” ” көрсөтүлөт. Биринчи алсыздыктагыдай эле, көйгөйдү чечүү табышмактуу - көйгөйдү чечүү тышкы утилита "мышык" ('Буйрук::жаңы("/bin/cat")).arg(жол) азыр конфигурация файлын окуу үчүн ишке киргизилди. output()').
  • CVE-2022-27819 - Маселе ошондой эле "-c" опциясын колдонууга байланыштуу, бул файлдын өлчөмүн жана түрүн текшербестен бүт конфигурация файлын жүктөөгө жана талдап чыгууга алып келет. Мисалы, бош эстутум түгөнүп, жасалма киргизүү/чыгаруу түзүү аркылуу тейлөөдөн баш тартуу үчүн, сиз ишке киргизүүдө блок түзмөгүн көрсөтсөңүз болот ("pkexec /usr/bin/swhkd -d -c /dev/sda") же берилиштердин чексиз агымын чыгарган символдук түзүлүш. Көйгөй файлды ачуунун алдында артыкчылыктарды баштапкы абалга келтирүү менен чечилди, бирок оңдоо аягына чыккан жок, анткени колдонуучунун ID (UID) гана баштапкы абалга келтирилген, бирок топтун ID (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 артыкчылыксыз колдонуучу астында иштеп жатат.

Source: opennet.ru

Комментарий кошуу