В ядре Linux найдена серьезная «дыра», первая в своем роде
Найдена уязвимость в ядре Linux. Ее непросто эксплуатировать, но профессионалы явно найдут способы. Настоятельно рекомендовано накатить последние обновления на все версии ядра 6.1-6.4.
После освобождения
Сразу несколько версий ядра ОС Linux содержат серьезную уязвимость, позволяющую повысить системные привилегии пользователя.
Баг, названный StackRot (CVE-2023-3269), получил патч 1 июля 2023 г. К концу месяца будут раскрыты все технические детали и представлен экспериментальный эксплойт.
Уязвимость обнаружил исследователь Жуй-Хань Ли (Ruihan Li), который и проинформировал разработчиков о ней.
Согласно его публикации, проблема затрагивает подсистему управления памятью ядра — компонента, который осуществляет распределение виртуальной памяти, пейджинг по запросу, выделение памяти для нужд ядра и пользовательских программ, а также распределение файлов по адресному пространству процессов.
Слабым местом оказался maple tree («клён») — новая структура данных для областей виртуальной памяти (VMA), которая была реализована впервые в ядре Linux версии 6.1. Уязвимость позволяет повторно использовать уже освобожденную ячейку памяти (use-after-free), поскольку расширение стека производится некорректно: структура mapletree может заменять один узел другим без фиксации состояния памяти со стороны системы управления.
При расширении стека ядро Linux и устранении зазора между VMA, в maple tree создается новый узел, а старый маркируется на удаление по окончании текущего цикла чтения. Это, по идее, защитная мера механизма чтения-копирования-обновления (RCU).
Однако у RCU есть непродолжительный период задержки, в ходе которого действующие процессы могут получить доступ к старому узлу, тем самым создавая условия для злонамеренной эксплуатации.
Обновитесь в срочном порядке
Жуй-Хань Ли указывает, что эксплуатация StackRot — не самая простая задача, и что CVE-2023-3269 может быть первой уязвимостью в своем роде (use-after-free-by-RCU).
«Сложность в эксплуатации автоматически понижает уровень угрозы, но лишь до известного предела, — говорит Никита Павлов, эксперт по информационной безопасности компании SEQ. — В свою очередь, как это ни парадоксально, повышается риск узконаправленных целевых атак: их осуществляют квалифицированные профессионалы, которых сложность эксплуатации уязвимости не отпугнет, а вот возможность повышать привилегии может быть весьма кстати».
Проблема затрагивает все версии ядра 6.1-6.4. Соответствующий патч уже вышел.
Ядро 6.1 было переведено в режим долгосрочной поддержки (LTS) в феврале 2023 г. Но далеко не все крупнейшие дистрибутивы его используют. Например, Ubuntu 22.04.2 LTS, чья поддержка закончится только в 2027 г., поставляется с версией 5.19.
Пользователям следует проверить версии ядра в своих дистрибутивах и обновить уязвимые.