0-дневна уязвимост в драйвера n_gsm, позволяваща изпълнение на код на ниво ядро ​​на Linux

Две експлойти бяха открити в публичното пространство, които включват неизвестна досега уязвимост в драйвера 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, като добавите реда „черен списък n_gsm“ към файла /etc/modprobe.d/blacklist.conf.

Трябва да се отбележи, че през януари беше разкрита информация за друга уязвимост (CVE-2023-6546) в драйвера n_gsm, за която експлойт също е публично достъпен. Тази уязвимост не се припокрива с първия проблем, въпреки че също е причинена от достъп до паметта след освобождаване при работа със структурата gsm_dlci, но в манипулатора на ioctl GSMIOC_SETCONF. Проблемът беше отстранен през август миналата година (корекцията беше включена в ядрото 6.5).

Източник: opennet.ru

Добавяне на нов коментар