В публичното пространство бяха открити два експлойта, които използват нова уязвимост в драйвера n_gsm, част от ядрото на Linux. Уязвимостта позволява на непривилегирован локален потребител да изпълни код на ядрово ниво и да повиши привилегиите си в системата. CVE идентификатор не е присвоен. Проблемът все още не е поправен.
Драйверът n_gsm предоставя имплементация на протокола GSM 07.10, използван в GSM модеми за мултиплексиране на връзки с последователния порт. Уязвимостта е предизвикана от състояние на състезание в обработчика ioctl GSMIOC_SETCONF_DLCI, използван за актуализиране на конфигурацията на DLCI (Идентификатор на връзка данни). Чрез манипулации с 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).
Източник: opennet.ru
