Уязвимость 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.20
TRX 0.14
JST 0.030
BTC 68221.63
ETH 3277.70
USDT 1.00
SBD 2.66