Они обнаружили уязвимость 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.   галисийский сказал

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