Недавно появилась новость об обнаружении нескольких уязвимостей, классифицированных как опасные. в ядре linux и которые позволяют локальному пользователю повышать свои привилегии в системе.
Первая из уязвимостей CVE-2022-0995 и это присутствует в подсистеме отслеживания событий «watch_queue» и это приводит к тому, что данные записываются в область памяти ядра за пределами выделенного буфера. Атака может быть осуществлена любым пользователем без привилегий, а их код может быть выполнен с привилегиями ядра.
Уязвимость присутствует в функции watch_queue_set_size() и связана с попыткой очистить список от всех указателей, даже если для них не была выделена память. Проблема проявляется при сборке ядра с опцией "CONFIG_WATCH_QUEUE=y", которая используется в большинстве дистрибутивов Linux.
Отмечается, что уязвимость это было решено в изменении, добавленном к ядро от 11 марта.
Второй обнаруженной уязвимостью является CVE-2022-27666 что присутствует в модулях ядра esp4 и esp6 которые реализуют преобразования Encapsulating Security Payload (ESP) для IPsec, которые используются при использовании как IPv4, так и IPv6.
Уязвимость позволяет локальному пользователю с обычными привилегиями перезаписывать объекты в памяти ядра и повышать свои привилегии в системе. Проблема связана с несоответствием размера выделенной памяти и фактически полученных данных, так как максимальный размер сообщения мог превышать максимальный размер выделенной памяти для структуры skb_page_frag_refill.
Упоминается, что уязвимость была исправлена в ядре 7 марта (исправлено в 5.17, 5.16.15 и т. д.), плюс опубликован рабочий прототип от эксплойта, который позволяет обычному пользователю получить root-доступ в Ubuntu Desktop 21.10 с настройками по умолчанию на GitHub.
Утверждается, что с небольшими изменениями эксплойт также будет работать на Fedora и Debian. Следует отметить, что изначально эксплойт был подготовлен для конкурса pwn2own 2022, но связанный с ним баг был выявлен и исправлен разработчиками ядра, поэтому было принято решение раскрыть подробности уязвимости.
Другие обнаруженные уязвимости: CVE-2022-1015 y CVE-2022-1016 в подсистеме netfilter в модуле nf_tables который питает фильтр пакетов nftables. Исследователь, выявивший проблемы, сообщил о подготовке рабочих эксплойтов для обеих уязвимостей, которые планируется выпустить через несколько дней после того, как дистрибутивы выпустят обновления пакетов ядра.
Первая проблема позволяет непривилегированному локальному пользователю осуществлять запись в стек за пределами границ. Переполнение происходит при обработке правильных выражений nftables, которые обрабатываются на этапе проверки индексов, предоставленных пользователем, имеющим доступ к правилам nftables.
Уязвимость связана с к тому, что разработчики подразумевали, что значение "enum nft_registers reg" равно одному байту, в то время как когда определенные оптимизации включены, компилятор, согласно спецификации C89, вы можете использовать 32-битное значение для этого. Из-за этой особенности размер, используемый для проверки и выделения памяти, не соответствует фактическому размеру данных в структуре, что приводит к замыканию структуры на указателях стека.
Эту проблему можно использовать для выполнения кода на уровне ядра. но для успешной атаки требуется доступ к nftables.
Их можно получить в отдельном сетевом пространстве имён (сетевых пространствах имён) с правами CLONE_NEWUSER или CLONE_NEWNET (например, если вы можете запустить изолированный контейнер). Уязвимость также тесно связана с используемыми компилятором оптимизациями, которые, например, включаются при компиляции в режиме "CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y". Эксплуатация уязвимости возможна, начиная с ядра Linux 5.12.
Встречается вторая уязвимость в netfilter при доступе область памяти уже освобождена (use-after-free) в драйвере nft_do_chain и может вызвать утечку неинициализированных областей памяти ядра, которые можно прочитать, манипулируя выражениями nftables, и использовать, например, для определения адресов указателей при разработке эксплойтов для других уязвимостей. Эксплуатация уязвимости возможна, начиная с ядра Linux 5.13.
Уязвимости были устранены в недавно выпущенных корректирующих обновлениях ядра.
Будьте первым, чтобы комментировать