В открытом доступе обнаружены два эксплоита, в которых задействована ранее неизвестная уязвимость в драйвере n_gsm, входящем в состав ядра Linux. Уязвимость позволяет непривилегированному локальному пользователю выполнить код на уровне ядра и поднять свои привилегии в системе. CVE-идентификатор не присвоен. Проблема пока остаётся неисправленной.
Драйвер n_gsm предоставляет реализацию протокола GSM 07.10, используемого в GSM-модемах для мультиплексирования соединений к последовательному порту.
Уязвимость вызвана состоянием гонки в обработчике ioctl GSMIOC_SETCONF_DLCI, используемом для обновления конфигурации DLCI (Data Link Connection Identifier). Через манипуляции с ioctl можно добиться обращения к памяти после её освобождения (use-after-free).
Эксплоит может использоваться на системах с ядрами Linux, начиная с 5.15 и заканчивая 6.5. Например, успешное получение root-доступа продемонстрировано в Fedora, Ubuntu 22.04 с ядром 6.5 и в Debian 12 с ядром 6.1. Начиная с ядра 6.6 для эксплуатации требуются права доступа CAP_NET_ADMIN. В качестве обходного пути блокирования уязвимости можно запретить автоматическую загрузку модуля ядра n_gsm, добавив в файл /etc/modprobe.d/blacklist.conf строку "blacklist n_gsm".
Примечательно, что в январе была раскрыта информация о другой уязвимости (CVE-2023-6546) в драйвере n_gsm, для которой также публично доступен эксплоит. Данная уязвимость не пересекается с первой проблемой, хотя также вызвана обращением к памяти после освобождения при работе со структурой gsm_dlci, но в обработчике ioctl GSMIOC_SETCONF. Проблема исправлена в августе прошлого года (исправление вошло в состав ядра 6.5).
Источник: https://www.opennet.ru/opennews/art.shtml?num=60980
(opennet.ru, основная лента)
[ON] 0-day уязвимость в драйвере n_gsm, позволяющая выполнить код на уровне ядра Linux
Модератор: Модераторы разделов
Re: [ON] 0-day уязвимость в драйвере n_gsm, позволяющая выполнить код на уровне ядра Linux
Почему они все, эти грамотеки, пишут "эксплоИт"? Вроде бы Й
Re: [ON] 0-day уязвимость в драйвере n_gsm, позволяющая выполнить код на уровне ядра Linux
у меня подобный модуль есть.
Код: Выделить всё
# ls -al /lib/modules/*/kernel/drivers/tty/ | grep gsm
-rw-r--r-- 1 root root 91907 дек 31 18:46 n_gsm.ko
-rw-r--r-- 1 root root 91907 фев 1 00:14 n_gsm.ko
Добавлено (08:17):
Сам модуль есть, но он как я понимаю не загружен в ядро.Код: Выделить всё
root@vpn-RU:~# ls -l /lib/modules/5.10.0-28-amd64/kernel/drivers/tty/ | grep gsm
-rw-r--r-- 1 root root 91907 фев 1 00:14 n_gsm.ko
root@vpn-RU:~# cat /proc/modules | grep gsm
root@vpn-RU:~# lsmod | grep gsm
root@vpn-RU:~#
Добавлено (08:19):
но на всякий пожарный добавил блокировку загрузки модуля.Код: Выделить всё
/etc/modprobe.d/blacklist.conf
blacklist n_gsm
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Знание сила, незнание Рабочая сила!
Re: [ON] 0-day уязвимость в драйвере n_gsm, позволяющая выполнить код на уровне ядра Linux
Удобнее проверять :-)
Код: Выделить всё
lsmod | grep module_name