Новости и события » Hi-Tech » Критические уязвимости в eBPF-подсистеме ядра Linux

Критические уязвимости в eBPF-подсистеме ядра Linux

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

Так как выявлено наличие публично доступного эксплоита для получения root-доступа через данные уязвимости, рекомендуется срочно отключить поддержку запуска eBPF непривилегированными пользователями при помощи "sysctl kernel.unprivileged_bpf_disabled=1", что приведет к невозможности использования обычными пользователями средств трассировки и анализа производительности на базе eBPF. Исправление пока доступно только в виде патчей, которые пока не включены в основной состав ядра. Дистрибутивы также еще не выпустили обновления: Debian, openSUSE, Fedora и Ubuntu. Проблемы не затрагивают ядро из состава SUSE Linux Enterprise и Red Hat Enterprise Linux 5, 6 и 7. Публично доступные эксплоиты корректно не работают в Debian 9 с ядром 4.9 (eBPF включен по умолчанию), но по мнению разработчиков Debian могут быть легко адаптированы для атаки.

Уязвимости вызваны восемью ошибками (CVE-2017-16996), появившимися в ядре 4.14, и одной ошибкой в ядре 4.9 (CVE-2017-16995). Проблемы вызваны отсутствием должных проверок в коде верификации eBPF-приложений (bpf/verifier.c), что позволяет осуществлять управляемое чтение и запись в произвольные области памяти ядра. Один класс проблем вызван тем, что в проверочном вызове check_alu_op() не осуществляется разделение между операциями BPF_ALU64|BPF_MOV|BPF_K (знаковое заполнение при чтение 32-разрядных значений в 64-разрядные ячейки) и BPF_ALU|BPF_MOV|BPF_K (добавочное заполнение нулями). Второй класс проблем связан с некорректным обрезанием значения регистров при преобразовании в значения меньшего размера.


Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх