Уязвимость в подсистеме ядра Linux Netfilter
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
В Netfilter, подсистеме ядра Linux, используемой для фильтрации и модификации сетевых пакетов, выявлена уязвимость (CVE-2021-22555), позволяющая локальному пользователю получить привилегии root в системе, в том числе находясь в изолированном контейнере. Для тестирования подготовлен рабочий прототип эксплоита, обходящий механизмы защиты KASLR, SMAP и SMEP. Исследователь, выявивший уязвимость, получил от Google вознаграждение, размером 20 тысяч долларов, за выявление метода обхода изоляции контейнеров Kubernetes в кластере kCTF.
Проблема проявляется начиная с ядра 2.6.19, выпущенного 15 лет назад, и вызвана ошибкой в обработчиках IPT_SO_SET_REPLACE и IP6T_SO_SET_REPLACE, приводящей к переполнению буфера при отправке специально оформленных параметров через вызов setsockopt в режиме compat. В обычных условиях вызов compat_setsockopt() может выполнить только пользователь root, но необходимые для совершения атаки полномочия также могут быть получены непривилегированным пользователем в системах с включённой поддержкой пространств имён идентификаторов пользователей (user namespaces).
Пользователь может создать контейнер с отдельным пользователем root и из него эксплуатировать уязвимость. Например, "user namespaces" по умолчанию включён в Ubuntu и Fedora, но не активирован в Debian и RHEL. Патч с исправлением уязвимости принят в состав ядра Linux 13 апреля. Обновления пакетов уже сформированы проектами Debian, Arch Linux и Fedora. В
Ubuntu, RHEL и SUSE обновления на стадии подготовки.
Проблема возникает в функции xt_compat_target_from_user() из-за некорректного расчёта размера памяти при сохранении структур ядра после преобразования из 32- в 64-разрядное представление. Ошибка позволяет записать четыре нулевых байта в любую позицию за границей выделенного буфера, ограниченную смещением 0x4C. Указанной возможности оказалось достаточно для создания эксплоита, позволяющего добиться получения прав root - через очистку указателя m_list->next в структуре msg_msg создавались условия для обращения к данным после освобождения памяти (use-after-free), что затем использовалось для получения сведений об адресах и изменения других структур через манипуляцию с системным вызовом msgsnd().
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://google.github.io/secur...)
- OpenNews: Уязвимость в ядре Linux, затрагивающая сетевой протокол CAN BCM
- OpenNews: Уязвимость в eBPF, позволяющая выполнить код на уровне ядра Linux
- OpenNews: Разработчики Netfilter официально объявили инструментарий iptables устаревшим
- OpenNews: Бывший лидер Netfilter прекратил дело о нарушении GPL и выплатит судебные издержки
- OpenNews: Уязвимость в ядре Linux, позволяющая выйти из изолированного контейнера
Похожие новости:
- Релиз дистрибутива Linux Mint 20.2
- Подкаст с разработчиками AlmaLinux, форка CentOS
- [Настройка Linux, Системное администрирование, Nginx, *nix] Nginx. Фазы обработки запроса. Практика
- [FPGA, Процессоры, DIY или Сделай сам, Электроника для начинающих] Zynq 7000. Собираем Linux и RootFS при помощи Buildroot
- Выпуск дистрибутива EuroLinux 8.3, совместимого с RHEL
- [Сетевые технологии] Путь Namex IXP к IP-фабрикам
- [Open source, Системное программирование, *nix, Софт] Microsoft рассказала о собственном Linux-дистрибутиве CBL-Mariner
- Microsoft опубликовал первый стабильный выпуск Linux-дистрибутива CBL-Mariner
- [Настройка Linux, *nix, Разработка на Raspberry Pi] Использование IceWM и Raspberry Pi в качестве основного PC: делюсь темой, конфигурацией и несколькими советами (перевод)
- [Системное администрирование, *nix, Хранение данных] Траблшутинг DRBD9 в LINSTOR
Теги для поиска: #_linux, #_netfilter
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 07:18
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
В Netfilter, подсистеме ядра Linux, используемой для фильтрации и модификации сетевых пакетов, выявлена уязвимость (CVE-2021-22555), позволяющая локальному пользователю получить привилегии root в системе, в том числе находясь в изолированном контейнере. Для тестирования подготовлен рабочий прототип эксплоита, обходящий механизмы защиты KASLR, SMAP и SMEP. Исследователь, выявивший уязвимость, получил от Google вознаграждение, размером 20 тысяч долларов, за выявление метода обхода изоляции контейнеров Kubernetes в кластере kCTF. Проблема проявляется начиная с ядра 2.6.19, выпущенного 15 лет назад, и вызвана ошибкой в обработчиках IPT_SO_SET_REPLACE и IP6T_SO_SET_REPLACE, приводящей к переполнению буфера при отправке специально оформленных параметров через вызов setsockopt в режиме compat. В обычных условиях вызов compat_setsockopt() может выполнить только пользователь root, но необходимые для совершения атаки полномочия также могут быть получены непривилегированным пользователем в системах с включённой поддержкой пространств имён идентификаторов пользователей (user namespaces). Пользователь может создать контейнер с отдельным пользователем root и из него эксплуатировать уязвимость. Например, "user namespaces" по умолчанию включён в Ubuntu и Fedora, но не активирован в Debian и RHEL. Патч с исправлением уязвимости принят в состав ядра Linux 13 апреля. Обновления пакетов уже сформированы проектами Debian, Arch Linux и Fedora. В Ubuntu, RHEL и SUSE обновления на стадии подготовки. Проблема возникает в функции xt_compat_target_from_user() из-за некорректного расчёта размера памяти при сохранении структур ядра после преобразования из 32- в 64-разрядное представление. Ошибка позволяет записать четыре нулевых байта в любую позицию за границей выделенного буфера, ограниченную смещением 0x4C. Указанной возможности оказалось достаточно для создания эксплоита, позволяющего добиться получения прав root - через очистку указателя m_list->next в структуре msg_msg создавались условия для обращения к данным после освобождения памяти (use-after-free), что затем использовалось для получения сведений об адресах и изменения других структур через манипуляцию с системным вызовом msgsnd(). =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 07:18
Часовой пояс: UTC + 5