Microsoft устранила уязвимости в ядре Azure Linux, ведущие к повреждению памяти

Azure Linux

Microsoft выпустила обновления безопасности для дистрибутива Azure Linux, закрывающие две уязвимости в ядре (azl3 kernel). Ошибки, обнаруженные в подсистемах Bluetooth и сетевого стека, позволяют локальному атакующему с минимальными привилегиями вызвать отказ в обслуживании и потенциально получить контроль над системой. Одна из проблем получила оценку 7,8 балла по шкале CVSS, что соответствует высокому уровню опасности.

Детали уязвимостей

Уязвимость CVE-2026-46275 затрагивает драйвер Bluetooth HCI UART, отвечающий за взаимодействие хост-контроллера с Bluetooth-адаптером через последовательный интерфейс. Исследователи выявили в коде две взаимосвязанные ошибки управления памятью: использование после освобождения (Use-After-Free, UAF) и разыменование нулевого указателя (Null Pointer Dereference). Корень проблемы заключается в некорректном завершении рабочих очередей (workqueues) при закрытии TTY-порта. Если до завершения инициализации драйвера происходит разрыв линии связи (hangup), процедура закрытия пропускает очистку очередей и сразу освобождает структуру данных "hu". Когда запланированные задачи выполняются позже, они обращаются к уже освобождённой памяти, что вызывает неопределённое поведение.

Кроме того, в последовательности завершения работы были обнаружены состояния гонки. Одно из них позволяло одновременно выполнить освобождение буфера передачи "tx_skb" из двух разных контекстов, что приводило к двойному освобождению памяти. Другая проблема была связана с порядком вызовов: освобождение устройства HCI ("hci_free_dev") происходило до вызова финальной процедуры закрытия протокола, из-за чего функции обратного вызова от вендора обращались к уже несуществующему указателю. Разработчики исправили ситуацию, изменив порядок операций и добавив синхронизацию через отмену рабочих очередей после снятия флага готовности.

Вторая уязвимость, CVE-2026-46323, обнаружена в механизме Generic Receive Offload (GRO) - технологии, агрегирующей входящие сетевые пакеты для снижения нагрузки на процессор. Функция "skb_gro_receive()" при объединении пакетов не проверяла флаг zerocopy, указывающий на то, что структура данных сокетного буфера не удерживает ссылки на страницы памяти. При копировании фрагментов между источниками без корректировки счётчика ссылок возникала возможность использования уже освобождённых страниц. Ошибка проявлялась, когда хотя бы один из объединяемых пакетов относился к zerocopy-потоку. Разработчики решили проблему, запретив слияние для таких пакетов.

Обе уязвимости затрагивают ядро Azure Linux версии 6.6.141.1-1 и более ранние. Дистрибутив Azure Linux (ранее известный как CBL-Mariner) используется Microsoft в собственной облачной инфраструктуре, включая Azure Kubernetes Service и Azure IoT Edge. Уязвимости такого класса представляют серьёзную угрозу для сред, где разграничение доступа между пользователями построено на изоляции ядра - в первую очередь для мультитенантных облачных сервисов. Эксплуатация CVE-2026-46323 позволяет локальному пользователю поднять привилегии и получить доступ к памяти других процессов или самого ядра. В сочетании с ошибками из CVE-2026-46275 злоумышленник мог бы перехватить управление Bluetooth-стеком и через него проникнуть в смежные подсистемы.

Microsoft рекомендует всем пользователям Azure Linux обновить ядро до версии 6.6.142.1-1. Патчи распространяются через стандартные каналы обновлений дистрибутива, в том числе через репозиторий пакетов Azure Linux. Временные меры защиты включают отключение Bluetooth на серверах, где он не используется, и ограничение локального доступа к системе. Полные технические детали доступны в бюллетенях безопасности Microsoft по ссылкам, опубликованным 10 и 14 июня 2026 года.

Выпуск двух патчей для ядра Azure Linux в течение одной недели подчёркивает сохраняющуюся сложность управления памятью в низкоуровневых компонентах операционной системы. Ошибки в состояниях гонки и неполная проверка флагов остаются типичными источниками уязвимостей в сетевых стеках и драйверах устройств. В условиях облачных сред, где обновление ядра требует координации и перезагрузки, оперативная реакция поставщика и наличие развёрнутых механизмов автоматического патчинга становятся критическими для минимизации окна атаки.

Ссылки

Комментарии: 0