Обнаружили уязвимость в подсистеме Linux eBPF.

Недавно стало известно, что была обнаружена уязвимость (CVE-2021-29154) в подсистеме eBPF, которая pПозволяет запускать трассировку, анализ подсистем и контроллеры управления трафиком работает внутри ядра Linux на специальной виртуальной машине JIT, которая позволяет локальному пользователю запускать ваш код на уровне ядра.

По словам исследователей, выявивших уязвимость, им удалось разработать рабочий прототип эксплойта для 86-битных и 32-битных систем x64, который может использоваться непривилегированным пользователем.

Al mismo tiempo, Red Hat отмечает, что серьезность проблемы зависит от доступности системного вызова eBPF. для пользователя. Например, в RHEL и большинстве других дистрибутивов Linux по умолчанию уязвимость может быть использована, если включен BPF JIT и у пользователя есть права CAP_SYS_ADMIN.

В ядре Linux обнаружена проблема, которой они могут злоупотреблять.
непривилегированные локальные пользователи для повышения привилегий.

Проблема в том, как компиляторы BPF JIT вычисляют для некоторых архитектур.
Смещения ветвей при генерации машинного кода. Этим можно злоупотреблять
чтобы создать аномальный машинный код и запустить его в режиме ядра,
где поток управления перехватывается для выполнения небезопасного кода.

И это то, что они подробно описывают проблема вызвана ошибкой, которая генерируется при вычислении смещения инструкций ветвления во время JIT-компилятора, который генерирует машинный код.

В частности, упоминается, что при генерации инструкций ветвления не учитывается, что смещение может измениться после прохождения стадии оптимизации, поэтому этот сбой можно использовать для генерации аномального машинного кода и выполнения его на уровне ядра. .

Особенно Это не единственная уязвимость в подсистеме eBPF, о которой стало известно в последние годы. так как в конце марта в ядре были выявлены еще две уязвимости (CVE-2020-27170, CVE-2020-27171), которые предоставляют возможность использовать eBPF для обхода защиты от уязвимостей класса Spectre, которые позволяют определять содержимое памяти ядра и что приводит к созданию условий для спекулятивного выполнения определенных операций.

Атака Spectre требует наличия определенной последовательности команд в привилегированном коде, что приводит к спекулятивному выполнению инструкций. В eBPF было найдено несколько способов генерировать такие инструкции посредством манипуляций с программами BPF, передаваемыми для их выполнения.

  • Уязвимость CVE-2020-27170 вызвана манипуляциями с указателями в модуле проверки BPF, в результате чего спекулятивные операции обращаются к области за пределами буфера.
  • Уязвимость CVE-2020-27171 связана с ошибкой целочисленного опустошения при работе с указателями, приводящей к спекулятивному доступу к данным вне буфера.

Эти проблемы уже исправлены в версиях ядра 5.11.8, 5.10.25, 5.4.107, 4.19.182 и 4.14.227 и включены в обновления ядра для большинства дистрибутивов Linux. Исследователи подготовили прототип эксплойта, который позволяет непривилегированному пользователю извлекать данные из памяти ядра.

Что касается одного из решений, которое в Red Hat предлагается:

Смягчение:

По умолчанию эта проблема не затрагивает большинство систем. Для этого администратор должен был включить JIT BPF.

Его можно сразу отключить командой:

# echo 0 > /proc/sys/net/core/bpf_jit_enable

Или его можно отключить для всех последующих загрузок системы, установив значение в /etc/sysctl.d/44-bpf -jit-disable

## start file ##
net.core.bpf_jit_enable=0</em>
end file ##

В конце концов если вам интересно узнать об этом больше об этой уязвимости вы можете узнать подробности в по следующей ссылке.

Стоит отметить, что проблема сохраняется до версии 5.11.12 (включительно) и еще не решена в большинстве дистрибутивов, хотя исправление уже внесено. доступен как патч.


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован.

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

bool (истина)