Опять… нашли очередную уязвимость в подсистеме eBPF

Недавно в новостях сообщили, что обнаружена новая уязвимость (уже внесен в каталог CVE-2021-4204) в подсистеме eBPF (для разнообразия) ...

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

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

В описании проблемы указано, что уязвимость связана с неправильным сканированием программ eBPF, передаваемых на исполнение, так как в подсистеме eBPF предусмотрены вспомогательные функции, корректность которых проверяется специальным верификатором.

Эта уязвимость позволяет локальным злоумышленникам повышать привилегии на
Затронутые установки ядра Linux. Злоумышленник должен сначала получить
возможность запускать код с низкими привилегиями в целевой системе для
использовать эту уязвимость.

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

Кроме того, некоторые функции требуют передачи значения PTR_TO_MEM в качестве аргумента. и верификатор должен знать размер памяти, связанной с аргументом, чтобы избежать возможных проблем с переполнением буфера.

В то время как для функций bpf_ringbuf_submit и bpf_ringbuf_discard, данные о размере переданной памяти верификатору не сообщаются (вот здесь и начинается проблема), которым злоумышленник пользуется, чтобы иметь возможность использовать для перезаписи областей памяти за пределами границы буфера при выполнении специально созданного кода eBPF.

Злоумышленник может использовать эту уязвимость для повышать привилегии и выполнять код в контексте ядра. ЗАМЕТЬТЕ, что непривилегированный bpf отключен по умолчанию в большинстве дистрибутивов.

Упоминается, что для того, чтобы пользователь мог осуществить атаку, пользователь должен иметь возможность загрузить вашу программу BPF, и многие последние дистрибутивы Linux блокируют это. по умолчанию (в т.ч. непривилегированный доступ к eBPF теперь запрещен по умолчанию в самом ядре, начиная с версии 5.16).

Например, упоминается, что уязвимость могут быть использованы в конфигурации по умолчанию в дистрибутив, который все еще довольно используется и, прежде всего, очень популярен, поскольку он Убунту 20.04 ЛТС, но в таких средах, как Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 и Fedora 33, он проявляется только в том случае, если администратор установил параметр ядро.непривилегированный_bpf_disabled в 0.

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

sysctl -w kernel.unprivileged_bpf_disabled=1

Наконец, следует отметить, что проблема появилась начиная с ядра Linux 5.8 и до сих пор не исправлена (включая версию 5.16) и именно поэтому код эксплойта будет задержан на 7 дней и будет опубликован в 12:00 UTC, то есть 18 января 2022 года.

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

Для тех, кому интересно иметь возможность узнать о статусе формирования обновлений с устранением проблемы в некоторых основных дистрибутивах, следует знать, что их можно отследить с этих страниц:  DebianRHELSUSEМягкая фетровая шляпаUbuntuArch.

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


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

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

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

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

*

*

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

bool (истина)