В ядре Linux найдена серьезная уязвимость

Сразу несколько версий ядра ОС Linux содержат серьезную уязвимость, позволяющую повысить системные привилегии пользователя. Баг, названный StackRot (CVE-2023-3269), получил патч 1 июля 2023 г. К концу месяца будут раскрыты все технические детали и представлен экспериментальный эксплойт. Уязвимость обнаружил исследователь Жуй-Хань Ли (Ruihan Li), который и проинформировал разработчиков о ней.

Согласно его публикации, проблема затрагивает подсистему управления памятью ядра — компонента, который осуществляет распределение виртуальной памяти, пейджинг по запросу, выделение памяти для нужд ядра и пользовательских программ, а также распределение файлов по адресному пространству процессов.

Слабым местом оказался maple tree («клён») — новая структура данных для областей виртуальной памяти (VMA), которая была реализована впервые в ядре Linux версии 6.1. Уязвимость позволяет повторно использовать уже освобожденную ячейку памяти (use-after-free), поскольку расширение стека производится некорректно: структура mapletree может заменять один узел другим без фиксации состояния памяти со стороны системы управления.

При расширении стека ядро Linux и устранении зазора между VMA, в maple tree создается новый узел, а старый маркируется на удаление по окончании текущего цикла чтения. Это, по идее, защитная мера механизма чтения-копирования-обновления (RCU).

Однако у RCU есть непродолжительный период задержки, в ходе которого действующие процессы могут получить доступ к старому узлу, тем самым создавая условия для злонамеренной эксплуатации.

 

 

Читайте новости первыми в нашем Telegram-канале!

Подписывайтесь на наш канал в Дзен!

Версия для печатиВерсия для печати

Регион: 

Рубрики: 

Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Читайте также