Уязвимость в ядре Linux, позволяющая повысить свои привилегии в системе

08.03.2017 20:05

В драйвере n_hdlc, поставляемом в составе ядра Linux, выявлена уязвимость (CVE-2017-2636), позволяющая локальному пользователю повысить свои привилегии в системе.

Уязвимость вызвана состоянием гонки (race condition) при доступе к указателю n_hdlc.tbuf, которое может привести к двойному освобождению памяти и перезаписи не связанных с буфером данных через манипуляцию с параметрами протокола HDLC (High-Level Data Link Control). Для совершения атаки непривилегированный локальный пользователь может активировать HDLC для устройства tty, при этом модуль ядра n_hdlc будет загружен автоматически. Для успешной атаки не требуется наличие специализированного оборудования Microgate или SyncLink.

Наличие уязвимости подтверждено в ядрах из RHEL 6/7, Fedora, SUSE, Debian и Ubuntu, ядро RHEL 5 проблеме не подвержено. Обновление пакетов с устранением уязвимости пока выпущено только для Ubuntu и Fedora Linux. Исправление также доступно в виде патча. В качестве обходного пути защиты можно блокировать автоматическую загрузку модуля n_hdlc, добавив строку "install n_hdlc /bin/true" в файл /etc/modprobe.d/disable-n_hdlc.conf. Если модуль n_hdlc уже загружен и используется, то для его выгрузки требуется перезагрузить систему.