У диспетчері гарячих клавіш Wayland виявлено кілька вразливостей

Кілька днів тому була опублікована новина про це було виявлено ряд уразливостей у swhkd (Simple Wayland HotKey Daemon) через неправильну обробку тимчасових файлів, параметрів командного рядка та Unix-сокетів.

Програма написана на Rust і обробляє гарячі клавіші в середовищах, заснованих на протоколі Wayland (сумісний з файлом конфігурації аналог процесу sxhkd, який використовується в середовищах на базі X11). Пакет включає непривілейований процес swhks, який виконує дії для гарячих клавіш, і фоновий процес swhkd, який запускається як root і взаємодіє з пристроями введення на рівні API uinput. Для організації взаємодії між swhks і swhkd використовується сокет Unix.

Правила Polkit дозволяють будь-якому локальному користувачеві запускати процес /usr/bin/swhkd як root і передавати йому довільні параметри.

Інтеграція пакету RPM поданий для openSUSE Tumbleweed містив незвичайні правила Polkit в файл визначення, який вимагав перегляду командою безпеки SUSE.

У результаті перевірки було виявлено багато проблем безпеки. Окремі проблеми описані в детальному звіті нижче.

З виявлені вразливі місця, зазначено наступне:

CVE-2022-27815

Ця вразливість дозволяє зберегти PID процесу у файлі з передбачуваною назвою і в каталозі для запису для інших користувачів (/tmp/swhkd.pid), за допомогою якого будь-який користувач може створити файл /tmp/swhkd.pid і помістити в нього pid існуючого процесу, що унеможливить запуск swhkd.

За відсутності захисту від створення символічних посилань у /tmp, вразливість можна використовувати для створення або перезапису файлів у будь-якому каталозі системи (PID записується у файл) або визначити вміст будь-якого файлу в системі (swhkd виводить весь вміст файлу PID у стандартний вихід). Слід зазначити, що у випущеному виправленні файл PID був переміщений не в каталог /run, а в каталог /etc (/etc/swhkd/runtime/swhkd_{uid}.pid), де він також не належить .

CVE-2022-27814

Ця вразливість дозволяє маніпулювати параметром командного рядка "-c", щоб вказати файл конфігурації може визначити існування будь-якого файлу в системі.

Як і у випадку з першою вразливістю, вирішення проблеми викликає недоуміння: вирішення проблеми зводиться до того, що зовнішня утиліта cat ('Command::new("/bin/cat").arg(path) є тепер запущено для читання файлу конфігурації.output()').

CVE-2022-27819

Ця проблема це також пов'язано з використанням параметра "-c"., який завантажує та аналізує весь файл конфігурації без перевірки розміру та типу файлу.

Наприклад, щоб спричинити відмову в обслуговуванні через нестачу вільної пам’яті та створення випадкового введення-виводу, ви можете вказати блоковий пристрій під час запуску («pkexec /usr/bin/swhkd -d -c /dev/sda») або символьний пристрій, який випромінює нескінченний потік даних.

Проблему було вирішено шляхом скидання привілеїв перед відкриттям файлу, але рішення не було повним, оскільки скинуто лише ідентифікатор користувача (UID), але ідентифікатор групи (GID) залишається незмінним.

CVE-2022-27818

Ця вразливість дозволяє використовувати файл /tmp/swhkd.sock для створення Unix-сокета, який створюється в загальнодоступному для запису каталозі, що викликає проблеми, подібні до першої вразливості (будь-який користувач може створити /tmp/swhkd.sock і генерувати або перехоплювати події натискання клавіш).

CVE-2022-27817

У цій уразливості, вхідні події отримуються з усіх пристроїв і в усіх сеансах, тобто користувач в іншому сеансі Wayland або консолі може перехоплювати події, коли інші користувачі натискають гарячі клавіші.

CVE-2022-27816

Процес swhks, як і swhkd, використовує файл PID /tmp/swhks.pid у загальнодоступному для запису каталозі /tmp. Проблема подібна до першої уразливості, але не настільки небезпечна, оскільки swhks працює від непривілейованого користувача.

Нарешті, якщо ви хочете дізнатись більше про це, ви можете проконсультуватися з подробиці за наступним посиланням.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.