Исследователь группы Project Zero Ян Хорн (Jann Horn) опубликовал информацию о случайно обнаруженном баге в ядре Linux.
Данная уязвимость позволяет поднять привилегии локального пользователя в системе Ubuntu, при условии, что используется шифрование каталога home.
Представленный эксплоит обходит защиту от глубокой вложенности вызовов к файловым системам низшего уровня, которые в свою очередь, активно используются такими файловыми системами как eCryptfs. Выполняя рекурсивные переотображения в память файла /proc/$pid/environ, при которых процесс 1 отображает в своё окружение файл /proc/2/environ, процесс 2 файл /proc/3/environ и т. д., атакующий может создать цепочку отображенных файлов произвольного уровня вложенности. Теперь, если кто-либо попытается прочитать содержимое /proc/1/environ, будет вызван обработчик pagefault для процесса 1, что в свою очередь вызовет обработчик pagefault для процесса 2 и далее рекурсивно. Последовательность таких вызовов может переполнить стек ядра и позволит перезаписать данные, которые находятся ниже области стека ядра, данными злоумышленника.
Для защиты от данной уязвимости предлагается запретить любые вложенные операции с procfs, блокировать открытие файлов с f_op->mmap==NULL
через ecryptfs, предоставить для ecryptfs отдельный кэш ядра, отделённый от кэша, применяемого при прямом отображении физической памяти, и вынести структуру thread_info
в другое место.
Обновления ядра, устраняющие данную уязвимость уже выпущены для Debian, Ubuntu, OpenSUSE, Fedora.
>>> Подробности