Обход ограничений SELinux, связанных с загрузкой модулей ядра

Выявлена возможность обхода запрета загрузки модулей ядра, реализуемого через SELinux. Блокировка модулей в SELinux основывалась на ограничении доступа к системному вызову finit_module, позволяющему загрузить модуль из файла и применяемому в таких утилитах, как insmod. При этом правила SELinux не рассматривали системный вызов init_module, который также может применяться для загрузки модулей ядра напрямую из буфера в памяти.

Для демонстрации метода подготовлен прототип эксплоита, позволяющий выполнить код на уровне ядра через загрузку своего модуля и полностью отключить защиту SELinux, при наличии ограниченного при помощи SELinux root-доступа к системе.

Release. Ссылка here.