Они обнаружили уязвимость VFS в Linux, которая позволяет повысить привилегии

Несколько дней назад вышла новость о том, что уязвимость обнаружена (уже внесен в каталог CVE-2022-0185) иn API контекста файловой системы предоставлено ядро linux что может позволить локальному пользователю получить привилегии root в системе.

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

Например, пространства имен пользователей включены по умолчанию в Ubuntu и Fedora, но не включены в Debian и RHEL (если только не используются платформы изоляции контейнеров). Помимо повышения привилегий, уязвимость также может использоваться для выхода из изолированного контейнера, если у контейнера есть полномочия CAP_SYS_ADMIN.

Уязвимость существует в функции legacy_parse_param() в VFS и связано с отсутствием надлежащей проверки максимального размера предоставляемых параметров в файловых системах, которые не поддерживают API контекста файловой системы.

Недавно несколько друзей из моей команды CTF Crusaders of Rust и я столкнулись с нулевым переполнением кучи ядра Linux. Мы нашли ошибку с помощью фаззинга с помощью syzkaller и быстро превратили ее в эксплойт Ubuntu LPE. Затем мы переписали его, чтобы выйти из защищенной инфраструктуры Google Kubernetes CTF и получить root права. Эта ошибка затрагивает все версии ядра, начиная с 0 (в настоящее время разрабатывается версия 5.1), и ей присвоен код CVE-5.16-2022. Мы уже сообщили об этом в список рассылки по дистрибутиву и безопасности Linux, и ошибка была исправлена ​​на момент выпуска этой статьи.

Передача слишком большого параметра может привести к переполнению целочисленной переменной, используемой для вычисления размера записываемых данных; в коде есть проверка переполнения буфера "if (len > PAGE_SIZE - 2 - size)", которая не работает, если значение размера больше 4094 из-за целочисленного переполнения через нижнюю границу (целочисленное переполнение, при преобразовании 4096 - 2 - 4095 в беззнаковое целое, получается 2147483648).

Этот баг позволяет при доступе к специально созданному образу ФС, вызвать переполнение буфера и перезаписать данные ядра после выделенной области памяти. Для эксплуатации уязвимости требуются права CAP_SYS_ADMIN, т.е. полномочия администратора.

Что касается 2022 года, наши товарищи по команде решили найти день 0 в 2022 году. Мы не совсем знали, с чего начать, но, поскольку наша команда хорошо знала уязвимости ядра Linux, мы решили просто купить несколько выделенных серверов. и запустите фаззер syzkaller от Google. 6 января в 22:30 по тихоокеанскому стандартному времени сервер Chop0 получил следующий отчет о сбое KASAN в legacy_parse_param: slab-out-of-bounds Запись в legacy_parse_param. Кажется, syzbot обнаружил эту проблему всего 6 дней назад при фаззинге Android, но проблема не была обработана, и мы наивно думали, что никто другой не заметил.

Напоследок стоит отметить, что проблема проявлялась с ядра Linux версии 5.1 и была решена в вышедших несколько дней назад обновлениях версий 5.16.2, 5.15.16, 5.10.93, 5.4.173.

Кроме того обновления пакетов уязвимостей уже выпущены для RHELDebianФедора и Ubuntu. Пока решение еще не доступно на Arch LinuxGentooSUSE y открытьSUSE.

В этом случае упоминается, что в качестве решения безопасности для систем, не использующих изоляцию контейнера, вы можете установить значение sysctl «user.max_user_namespaces» равным 0:

Исследователь, выявивший проблему, опубликовал демонстрация эксплойта que позволяет запускать код от имени пользователя root в Ubuntu 20.04 в конфигурации по умолчанию. Планируется, что код эксплойта публикуется на GitHub в течение недели после что дистрибутивы выпускают обновление, устраняющее уязвимость.

В конце концов если вам интересно узнать об этом больше, вы можете проверить подробности в по следующей ссылке.


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

Комментарий, оставьте свой

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

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

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

  1.   галисийский сказал

    Еще одна причина не трогать оснастку палкой.