Уязвимости в swhkd, менеджере горячих клавиш для Wayland
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
В swhkd (Simple Wayland HotKey Daemon) выявлена серия уязвимостей, вызванных некорректной работой с временными файлами, параметрами командной строки и unix-сокетами. Программа написана на языке Rust и выполняет обработку нажатия горячих клавиш в окружениях на базе протокола Wayland (совместимый на уровне файлов конфигурации аналог процесса sxhkd, применяемого в окружениях на базе X11).
В состав пакета входит непривилегированный процесс swhks, выполняющий действия для горячих клавиш, и фоновый процесс swhkd, выполняемый с правами root и взаимодействующий с устройствами ввода на уровне API uinput. Для организации взаимодействия swhks и swhkd применяется Unix-сокет. При помощи правил Polkit любому локальному пользователю предоставляется возможность запуска с правами root процесса /usr/bin/swhkd и передачи ему произвольных параметров.
Выявленные уязвимости:
- CVE-2022-27815 - сохранение PID процесса в файл с предсказуемым именем и в каталоге, доступном на запись другим пользователям (/tmp/swhkd.pid). Любой пользователь может создать файл /tmp/swhkd.pid и поместить в него pid существующего процесса, что приведёт к невозможности запустить swhkd. При отсутствии защиты от создания символических ссылок в /tmp, уязвимость может применяться для создания или перезаписи файлов в любом системном каталоге (в файл записывается PID) или определения содержимого любого файла в системе (swhkd выводит в stdout всё содержимое PID-файла). Примечательно, что в выпущенном исправлении 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 doesn't exist". Как и в случае с первой уязвимостью исправление проблемы вызывает недоумение - устранение проблемы сводится к тому, что для чтения файла конфигурации теперь запускается внешняя утилита "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 - для создания Unix-сокета используется файл /tmp/swhkd.sock, создаваемый в общедоступном на запись каталоге, что приводит к похожим проблемам, что и первая уязвимость (любой пользователь может создать /tmp/swhkd.sock и генерировать или перехватывать события нажатия клавиш).
- CVE-2022-27817 - события ввода принимаются от всех устройств и во всех сеансах, т.е. пользователь из другого сеанса Wayland или из консоли может перехватить события при нажатии горячих клавиш другими пользователями.
- CVE-2022-27816 - процесс swhks, как и swhkd, использует PID-файл
/tmp/swhks.pid в общедоступном на запись каталоге /tmp. Проблема аналогична первой уязвимости, но не столь опасна, так как swhks выполняется под непривилегированным пользователем.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://www.openwall.com/lists...)
- OpenNews: Уязвимость в стандартной библиотеке языка Rust
- OpenNews: Уязвимость в сетевых библиотеках языков Rust и Go, позволяющая обойти проверку IP-адресов
- OpenNews: Уязвимости в Please, альтернативе sudo, написанной на языке Rust
- OpenNews: Уязвимость в Polkit, позволяющая повысить свои привилегии в системе
- OpenNews: Критическая уязвимость в PolKit, позволяющая получить root-доступ в большинстве дистрибутивов Linux
Похожие новости:
- Выпуск языка программирования Rust 1.60
- Выпуск Arti 0.2.0, официальной реализации Tor на языке Rust
- Новая версия патчей для ядра Linux с поддержкой языка Rust
- Первый бета-выпуск Arti, реализации Tor на языке Rust
- Выпуск языка программирования Rust 1.59 с поддержкой ассемблерных вставок
- Пятая редакция патчей для ядра Linux с поддержкой языка Rust
- Обновление варианта GNU Coreutils, переписанного на языке Rust
- Выпуск генератора лексических анализаторов re2c 3.0
- Уязвимость в стандартной библиотеке языка Rust
- Четвёртая редакция патчей для ядра Linux с поддержкой языка Rust
Теги для поиска: #_swhkd, #_rust
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 09:11
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
В swhkd (Simple Wayland HotKey Daemon) выявлена серия уязвимостей, вызванных некорректной работой с временными файлами, параметрами командной строки и unix-сокетами. Программа написана на языке Rust и выполняет обработку нажатия горячих клавиш в окружениях на базе протокола Wayland (совместимый на уровне файлов конфигурации аналог процесса sxhkd, применяемого в окружениях на базе X11). В состав пакета входит непривилегированный процесс swhks, выполняющий действия для горячих клавиш, и фоновый процесс swhkd, выполняемый с правами root и взаимодействующий с устройствами ввода на уровне API uinput. Для организации взаимодействия swhks и swhkd применяется Unix-сокет. При помощи правил Polkit любому локальному пользователю предоставляется возможность запуска с правами root процесса /usr/bin/swhkd и передачи ему произвольных параметров. Выявленные уязвимости:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 09:11
Часовой пояс: UTC + 5