Недавно еще одна проблема была обнаружена в подсистеме AF_PACKET ядра Linux, которое позволяет локальному непривилегированному пользователю запускать код от имени пользователя root или выйдите из изолированных контейнеров, если у них есть root-доступ.
В опубликованной информации упоминается, что для создания сокета AF_PACKET и использования уязвимости требуются полномочия CAP_NET_RAW.
Однако отмечается, что пользователь без прав может получить разрешение указан в контейнерах, созданных в системах с включенными пространствами имен пользователей.
Например, пространства имен пользователей включены по умолчанию в Ubuntu и Fedora, но не включены в Debian и RHEL. В то время как в Android процесс медиа-сервера имеет право создавать сокеты AF_PACKET, через которые можно использовать уязвимость.
Об уязвимости в AF_PACKET
Уязвимость присутствует в функции tpacket_rcv и это вызвано ошибкой в вычислении переменной netoff.
Злоумышленник может создать условия под которым напишет значение меньше, чем маклен в переменной netoff, которая вызовет переполнение путем вычисления «macoff = netoff-maclen» с последующим выполнением этого может неправильно установить указатель на буфер для входящих данных.
В результате злоумышленник может инициировать запись от 1 до 10 байтов в область за пределами выделенного буфера.
Просчет присутствует в ядре с июля 2008 года, то есть во всех текущих ядрах, однако теперь известная возможность использовать его для записи в область за пределами выделенного буфера (уязвимость) предположительно появилась в феврале 2016 года (из ядра версии 4.6-rc1 и выше) с развитием поддержки virtio_net.
Что касается решения проблемы, оно все еще доступно в виде патча. Помимо того, что, с другой стороны, наблюдается разработка эксплойта, позволяющего получить root права в системе.
Для тех, кто хочет узнать, доступно ли уже исправление для их дистрибутива, они могут отслеживать появление обновлений пакетов в различных дистрибутивах на следующих страницах: Ubuntu, Fedora, SUSE, Debian, RHEL, Арка.
Поддержка прокрутки текста в текстовой консоли была удалена.
С другой стороны, говоря о ядре Linux, было также объявлено, что код прокрутки текста был удален из реализации текстовой консоли в ядре Linux (CONFIG_VGACON_SOFT_SCROLLBACK).
Код был удален из-за наличия багов, который некому было исправить из-за отсутствия менеджера для наблюдения за разработкой vgacon.
И это несколько месяцев назад в vgacon была обнаружена и исправлена уязвимость (CVE-2020-14331), которая могла вызвать переполнение буфера из-за отсутствия надлежащих проверок доступности памяти в буфере прокрутки. Уязвимость привлекла внимание разработчиков кто организовал фаззинг-тесты кода vgacon в syzbot.
Кроме того дальнейшие проверки выявили еще несколько проблем Аналогично в коде vgacon, а также проблемы с программной реализацией смещения в контроллере fbcon.
К сожалению, код проблемы долгое время оставался без внимания, предположительно из-за того, что разработчики перешли на использование графических консолей, а текстовые консоли перестали использоваться (люди продолжают использовать консоли vgacon и fbcon, но они не были основным интерфейсом ядра в течение десятилетий и распространили обе функции вроде встроенной прокрутки контроллера (Shift + PgUp / PgUp), вероятно, мало востребованы).
В связи с этим, Линус Торвальдс решил не пытаться сохранить код невостребованный, но просто удалите его.
Наконец, упоминается, что если есть пользователи, которым нужна эта функциональность, код для поддержки прокрутки в консоли будет возвращен ядру, как только будет готов сопровождающий или кто захочет взять на себя его обслуживание самостоятельно. руки, это единственный, кто хочет тратить на это время.