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

in #rulast year

Выполненный в ядре Linux 6.1 перевод VMA (Virtual Memory Area) со структуры данных "red-black tree" на "maple tree" привёл к появлению уязвимости (CVE-2023-3269), позволяющей непривилегированному пользователю добиться выполнения своего кода с правами ядра. Уязвимость, которой присвоено кодовое имя StackRot, проявляется начиная с выпуска ядра 6.1 и устранена в обновлениях 6.4.1, 6.3.11 и 6.1.37.

Структура "maple tree" представляет собой вариант B-tree, поддерживающий индексацию по диапазонам значений и спроектированный для эффективного использования кэша современных процессоров. По сравнению с "red-black tree" применение "maple tree" позволяет добиться более высокой производительности. Уязвимость вызвана ошибкой в обработчике расширения стека - в структуре "maple tree", используемой при управлении областями виртуальной памяти в ядре, замена узла в дереве могла произойти без выставления блокировки на запись, что создавало условия для обращения к области памяти после её освобождения (use-after-free).

Эксплуатацию уязвимости усложняло то, что узлы в структуре "maple tree" освобождаются в отложенном режиме с использованием callback-вызовов с блокировками RCU (Read-copy-update). Тем не менее, исследователям удалось преодолеть возникшие трудности и подготовить рабочий эксплоит, который планируют опубликовать в конце июля, чтобы дать пользователям время обновить свои системы. Эксплуатация возможна в почти во всех конфигурациях ядра и требует лишь минимальных привилегий.

Источник: https://www.opennet.ru/opennews/art.shtml?num=59385

Sort:  

неплохо

Coin Marketplace

STEEM 0.18
TRX 0.15
JST 0.029
BTC 62108.99
ETH 2429.44
USDT 1.00
SBD 2.64