Драйвер 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).
Источник: http://www.opennet.ru/opennews/art.shtml?num=60980