В Сеть выложили технические детали опасной дыры в ядре Linux — StackRot

В Сеть выложили технические детали опасной дыры в ядре Linux — StackRot

В Сети появились технические подробности серьёзной уязвимости, затрагивающей множество версий ядра Linux. Брешь получила имя StackRot, её можно использовать для повышения прав в атакованной системе.

Специалисты отмечают, что эксплуатация бага, получившего идентификатор CVE-2023-3269 потребует определённых усилий. Патч доступен с 1 июля, а полностью рабочий демонстрационный эксплойт обещают к концу месяца.

За обнаружение уязвимости благодарят исследователя Руихана Ли. Как объяснил эксперт, проблема затрагивает подсистему управления памятью ядра. Этот компонент, как известно, отвечает за имплементацию виртуальной памяти, её выделение для нужд ядра и программ уровня пользователя.

StackRot актуальна для всех конфигураций ядра в версиях Linux с 6.1 по 6.4. Исследователь сообщил о баге 15 июня, однако подготовка патча заняла почти две недели из-за сложности проблемы. Говорят, что даже сам Линус Торвальдс возглавил работу.

«28 июня патч добавили в дерево Линуса. Сам Линус предоставил обстоятельное сообщение, чтобы прояснить заплатки с технической точки зрения. Далее патчи были портированы на стабильные версии ядра (6.1.37, 6.3.11 и 6.4.1). Таким образом, “StackRot“ удалось полостью устранить первого июля», — отмечает Ли.

В целом причину возникновения этого бага эксперты видят в методе обработки расширения стека со стороны ядра Linux. Само «слабое звено» располагается в «maple tree» — новой структуре данных для VMA, которая была представлена в ядре Linux версии 6.1.

Фактически StackRot можно назвать классической UAF (use-after-free — некорректное использование динамической памяти), возникающей из-за метода обработки расширения стека.

 

Руихан Ли подчеркнул, что грамотная эксплуатация может стать серьёзной задачей, а CVE-2023-3269, в сущности, будет первой теоретически эксплуатируемой дырой класса use-after-free-by-RCU (UAFBR). Сам proof-of-concept (PoC) эксперт обещает выложить к концу июля.