Предложен метод эксплуатации разыменования NULL-указателей в ядре Linux
Автор
Сообщение
news_bot ®
Стаж: 7 лет 2 месяца
Сообщений: 27286
Исследователи из команды Google Project Zero разработали метод эксплуатации уязвимостей в ядре Linux, вызванных разыменованием указателей NULL. До сих пор проблемам в ядре, связанным с разыменованием указателей NULL, не уделялось должного внимания, так как доведение таких проблем до атак, приводящих к повышению привилегий или выполнению своего кода, считалось нереалистичным (непривилегированным процессам запрещён маппинг в нижней области адресного пространства). Как правило подобные ошибки приводят к генерации ядром oops-предупреждений, после которых проблемные задачи завершаются и состояние восстанавливается без необходимости остановки работы системы.
Новый метод атаки основывается на особенности обработки состояний "oops", в результате которых можно добиться увеличения значения счётчика ссылок (refcount), что в свою очередь может привести к переполнению счётчика и освобождению памяти, связанной с refcount. В этом случае эксплуатация сводится к манипуляциям, типичным для атак use-after-free (возникает ситуация, когда у объекта счётчик ссылок становится равен нулю, память освобождается, но фактически остаются рабочие ссылки, указывающие на освобождённую память).
Разыменование указателя NULL в данном случае используется как способ управляемой генерации состояния "oops". Проблема состоит в том, что для достижения переполнения 32-разрядного refcount требуется примерно 232 вызовов состояния "oops". С практической стороны для проведения атаки при помощи предложенного эксплоита требуется около 8 дней непрерывной генерации состояний "oops". В случае успеха эксплоит позволяет добиться выполнения своего кода на уровне ядра.
Используемое в эксплоите разыменование указателя NULL устранено в октябре, но так как выявление похожих проблем не является редкостью и они ранее трактовались как ошибки, а не уязвимости, разработчики добавят в ядро Linux общую защиту для предотвращения атак, манипулирующих генерацией состояний "oops". В частности, в состав ядра 6.2 приняты изменения, ограничивающие максимальное число "oops". После достижения лимита, который по умолчанию выставлен в 10 тысяч oops (при желании можно изменить через параметр oops_limit), ядро будет инициировать переход в состояние "panic" с последующей перезагрузкой, что не позволит добиться необходимого для обнуления refcount числа итераций. Ограничение также планируют перенести в ранее выпущенные, но ещё поддерживаемые, ветки ядра, а также в пакеты с ядром популярных дистрибутивов.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://googleprojectzero.blog...)
- OpenNews: Состояние гонки в сборщике мусора ядра Linux, способное привести к повышению привилегий
- OpenNews: Оценка оперативности устранения уязвимостей, обнаруженных Google Project Zero
- OpenNews: Уязвимость в Mozilla NSS, позволяющая выполнить код при обработке сертификатов
- OpenNews: Раскрыта техника эксплуатации уязвимости в tty-подсистеме ядра Linux
- OpenNews: Уязвимость в специфичном для CPU AMD коде KVM, позволяющая выполнить код вне гостевой системы
Похожие новости:
- Уязвимость в модуле ksmbd ядра Linux, позволяющая удалённо выполнить свой код
- В Fedora 38 планируют реализовать поддержку универсальных образов ядра
- Релиз ядра Linux 6.1
- В ядро Linux 6.2 войдёт подсистема для ускорителей вычислений
- Уязвимость в подсистеме io_uring, приводящая к повышению привилегий
- Уязвимость в реализации протокола MCTP для Linux, позволяющая повысить свои привилегии
- Избавление ядра Linux от кода, меняющего поведение для процессов, начинающихся на символ X
- Линус Торвальдс предложил прекратить поддержку CPU i486 в ядре Linux
- Уязвимость в подсистеме io_uring ядра Linux, позволяющая повысить привилегии в системе
- Уязвимости в беспроводном стеке ядра Linux, допускающие удалённое выполнение кода
Теги для поиска: #_null, #_kernel
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 27-Апр 04:14
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 7 лет 2 месяца |
|
Исследователи из команды Google Project Zero разработали метод эксплуатации уязвимостей в ядре Linux, вызванных разыменованием указателей NULL. До сих пор проблемам в ядре, связанным с разыменованием указателей NULL, не уделялось должного внимания, так как доведение таких проблем до атак, приводящих к повышению привилегий или выполнению своего кода, считалось нереалистичным (непривилегированным процессам запрещён маппинг в нижней области адресного пространства). Как правило подобные ошибки приводят к генерации ядром oops-предупреждений, после которых проблемные задачи завершаются и состояние восстанавливается без необходимости остановки работы системы. Новый метод атаки основывается на особенности обработки состояний "oops", в результате которых можно добиться увеличения значения счётчика ссылок (refcount), что в свою очередь может привести к переполнению счётчика и освобождению памяти, связанной с refcount. В этом случае эксплуатация сводится к манипуляциям, типичным для атак use-after-free (возникает ситуация, когда у объекта счётчик ссылок становится равен нулю, память освобождается, но фактически остаются рабочие ссылки, указывающие на освобождённую память). Разыменование указателя NULL в данном случае используется как способ управляемой генерации состояния "oops". Проблема состоит в том, что для достижения переполнения 32-разрядного refcount требуется примерно 232 вызовов состояния "oops". С практической стороны для проведения атаки при помощи предложенного эксплоита требуется около 8 дней непрерывной генерации состояний "oops". В случае успеха эксплоит позволяет добиться выполнения своего кода на уровне ядра. Используемое в эксплоите разыменование указателя NULL устранено в октябре, но так как выявление похожих проблем не является редкостью и они ранее трактовались как ошибки, а не уязвимости, разработчики добавят в ядро Linux общую защиту для предотвращения атак, манипулирующих генерацией состояний "oops". В частности, в состав ядра 6.2 приняты изменения, ограничивающие максимальное число "oops". После достижения лимита, который по умолчанию выставлен в 10 тысяч oops (при желании можно изменить через параметр oops_limit), ядро будет инициировать переход в состояние "panic" с последующей перезагрузкой, что не позволит добиться необходимого для обнуления refcount числа итераций. Ограничение также планируют перенести в ранее выпущенные, но ещё поддерживаемые, ветки ядра, а также в пакеты с ядром популярных дистрибутивов. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 27-Апр 04:14
Часовой пояс: UTC + 5