Уязвимости в подсистеме eBPF ядра Linux

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
09-Апр-2021 17:30

В подсистеме eBPF, позволяющей запускать обработчики для трассировки, анализа работы подсистем и управления трафиком, выполняемые внутри ядра Linux в специальной виртуальной машине с JIT, выявлена уязвимость (CVE-2021-29154), позволяющая локальному пользователю добиться выполнения свого кода на уровне ядра. Проблема проявляется вплоть до выпуска 5.11.12 (включительно) и ещё не исправлена в дистрибутивах (Debian, Ubuntu, RHEL, Fedora, SUSE, Arch). Исправление доступно в виде патча.
По заявлению исследователей, выявивших уязвимость, им удалось разработать рабочий прототип эксплоита для 32- и 64-разрядных систем x86, который может быть использован непривилегированным пользователем. При этом компания Red Hat отмечает, что опасность проблемы зависит от доступности пользователю системного вызова eBPF. Например, в RHEL и большинстве других дистрибутивов Linux в конфигурации по умолчанию уязвимость может быть эксплуатирована при включении BPF JIT и наличии у пользователя прав CAP_SYS_ADMIN. В качестве обходной меры защиты рекомендуется отключить BPF JIT при помощи команды:
echo 0 > /proc/sys/net/core/bpf_jit_enable
Проблема вызвана ошибкой вычисления смещения для команд ветвления в процессе генерации машинного кода JIT-компилятором. В частности, при генерации инструкций ветвления не учитывается, что смещение может измениться после прохождения стадии оптимизации. Указанная недоработка может использоваться для формирования аномального машинного кода и его выполнения их на уровне ядре.
Примечательно, что это не единственная уязвимость в подсистеме еBPF за последнее время. В конце марта в ядре были выявлены ещё две уязвимости (CVE-2020-27170, CVE-2020-27171), предоставляющие возможность использовать еBPF для обхода защиты от уязвимостей класса Spectre, позволяющих определять содержимое памяти ядра в результате создания условий для спекулятивного выполнения определённых операций. Для атаки Spectre требуется наличие в привилегированном коде определённой последовательности команд, приводящих к спекулятивному выполнению инструкций. В еBPF найдено несколько способов генерации подобных инструкций через манипуляции с передаваемыми для выполнения BPF-програмами.
Уязвимость CVE-2020-27170 вызвана наличием в верификаторе BPF манипуляций с указателями, вызывающими спекулятивные операции обращения к области вне границ буфера. Уязвимость CVE-2020-27171 связана с ошибкой целочисленной арифметики (integer underflow) при работе с указателями, приводящей к спекулятивному обращению к данным вне буфера. Указанные проблемы уже устранены в выпусках ядра 5.11.8, 5.10.25, 5.4.107, 4.19.182 и 4.14.227, а также вошли в состав обновлений ядра большинства дистрибутивов Linux. Исследователями подготовлен протитип эксплоита, позволяющий непривилегированному пользователю извлечь данные из памяти ядра.
===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_bpf, #_kernel, #_linux
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 21:37
Часовой пояс: UTC + 5