CVE-2026-72441 в Linux Kernel: утечка данных ядра через ieee802154

CVE: CVE-2026-72441
Продукт: Linux Kernel
Дата публикации: 15.08.2026
Критичность: не определена
CVSS: нет данных
EPSS: 0,23%; процентиль 13,57%
CISA KEV: нет подтверждения в каталоге CISA KEV

Краткое описание​


В подсистеме IEEE 802.15.4 ядра Linux выявлена уязвимость (CVE-2026-72441), приводящая к утечке неинициализированных данных стека в пространство пользователя. Ошибка возникает при обработке пакетов с режимом адреса IEEE802154_ADDR_NONE, когда поле pan_id структуры ieee802154_addr не обнуляется перед копированием в буфер пользователя через dgram_recvmsg().

Основные характеристики​


Тип уязвимости: kernel-infoleak (утечка информации из ядра). Затронутый компонент: стек сетевой подсистемы ieee802154. Механизм: чтение неинициализированной памяти стека. Обнаружено инструментом KMSAN (Kernel Memory Sanitizer) и репортером syzbot. Исправление вносит явную инициализацию структуры адреса нулями через memset при специфическом режиме адресации.

Какие продукты и версии затронуты​


Linux Kernel с включенной поддержкой подсистемы ieee802154. Уязвимость затрагивает версии ядра, содержащие коммит 94b4f6c21cf5 («ieee802154: add header structs with endiannes and operations») и не содержащие исправляющий патч. Точные диапазоны версий зависят от веток stable, в которые был применен фикс. Официальные списки затронутых версий для конкретных дистрибутивов отсутствуют в доступных источниках.

Причина уязвимости​


Функция ieee802154_hdr_get_addr() в файле net/ieee802154/header_ops.c не инициализирует поле pan_id структуры ieee802154_addr, когда переданный режим адреса равен IEEE802154_ADDR_NONE. В этом случае функция устанавливает только поле mode и возвращает управление, оставляя остальную часть структуры (включая pan_id) содержащей случайные данные из стека, где была выделена локальная переменная.

Как работает атака​


Атакующий создает сокет типа AF_IEEE802154 и инициирует прием данных. При обработке входящего пакета функция __ieee802154_rx_handle_packet() выделяет локальную структуру заголовка на стеке. Если пакет имеет режим адреса IEEE802154_ADDR_NONE, функция ieee802154_hdr_get_addr() не обнуляет поле pan_id. Позже, в функции dgram_recvmsg(), неинициализированное значение pan_id копируется в структуру sockaddr_ieee802154. Наконец, функция move_addr_to_user() копирует эту структуру в пространство пользователя, раскрывая содержимое стека ядра.

Условия успешной эксплуатации​


Для эксплуатации требуется наличие активного сетевого интерфейса IEEE 802.15.4 и возможность отправки или генерации пакетов с режимом адреса IEEE802154_ADDR_NONE. Атакующий процесс должен иметь права на создание сокетов AF_IEEE802154 и вызов системного вызова recvmsg. Уязвимость не требует повышения привилегий для инициации, но результат (утечка данных) доступен любому процессу, способному читать из такого сокета.

Возможный сценарий атаки​


  1. Атакующий открывает сокет AF_IEEE802154. 2. На сетевом уровне генерируется или перехватывается пакет IEEE 802.15.4 с заголовком, указывающим режим адреса IEEE802154_ADDR_NONE. 3. Ядро обрабатывает пакет, вызывая ieee802154_hdr_get_addr(), которая не обнуляет поле pan_id. 4. Атакующий вызывает recvmsg() для получения данных из сокета. 5. Ядро копирует структуру адреса, включая неинициализированное поле pan_id, в буфер пользователя. 6. Атакующий анализирует полученные данные, извлекая фрагменты памяти стека ядра.

Есть ли публичный эксплойт​


Публичный эксплойт для массового использования не зафиксирован. Уязвимость была обнаружена и сообщена через систему автоматического тестирования syzbot. В источниках упоминается использование инструментов Gemini для помощи в анализе, но готовых PoC-кодов для эксплуатации в дикой природе в открытых источниках не представлено. Статус эксплуатации: теоретически возможна, подтверждена только на уровне обнаружения утечки памяти инструментами ядра.

Признаки эксплуатации​


Специфичных индикаторов компрометации (IOC) для этой уязвимости не существует, так как она представляет собой утечку данных, а не вторжение. Общие признаки: наличие сообщений KMSAN в журналах ядра (dmesg) с текстом «kernel-infoleak in move_addr_to_user» или «Uninit was stored to memory at ieee802154_addr_to_sa». Также можно наблюдать аномальное поведение приложений, использующих AF_IEEE802154, если они пытаются интерпретировать случайные данные как валидные адреса.

Как обнаружить атаку​


Для обнаружения уязвимости в системе проверьте версию ядра и наличие патча. Используйте команды: uname -r, uname -a, cat /proc/version. Сравните вывод с известными уязвимыми версиями. В системах с включенным KMSAN (обычно сборки для разработки) ищите сообщения об утечке памяти в dmesg. Для производственных систем рекомендуется сверять хэш текущего модуля ieee802154 или версию ядра с базой данных исправлений.

Как проверить свою версию​


Выполните команду uname -r для получения версии ядра. Затем проверьте, содержит ли ваша версия ядра коммит исправления. В системах с доступом к исходным кодам или инструментам проверки целостности можно проверить наличие функции memset в ieee802154_hdr_get_addr() для случая IEEE802154_ADDR_NONE. Пример команды для проверки версии: uname -r. Если версия ядра ниже той, в которую был применен патч (например, 6.1.x, 6.6.x и т.д., в зависимости от конкретного backport), система уязвима.

Исправление​


Установите последнее обновление ядра Linux, содержащее исправление CVE-2026-72441. Патч добавляет вызов memset(addr, 0, sizeof(*addr)) перед установкой режима адреса в функции ieee802154_hdr_get_addr(). Обновите систему через пакетный менеджер вашей дистрибуции (например, apt, yum, dnf) или пересоберите ядро из исходных кодов с применением патча. Перезагрузите систему для загрузки исправленного ядра.

Временные меры защиты​


Если немедленное обновление ядра невозможно, рассмотрите возможность отключения поддержки ieee802154, если она не требуется для работы системы. Это можно сделать путем отключения модуля ядра ieee802154 или соответствующего сетевого интерфейса. Также можно ограничить доступ к созданию сокетов AF_IEEE802154 с помощью SELinux или AppArmor, запретив процессам пользовательского пространства доступ к этой семейству адресов.

Как проверить устранение уязвимости​


После обновления проверьте версию ядра командой uname -r. Убедитесь, что версия соответствует или превышает версию, содержащую исправление. Для дополнительной проверки можно использовать инструменты анализа бинарных файлов (например, objdump или strings) для проверки наличия строки «memset» в соответствующей функции модуля ieee802154, если это применимо. Также проверьте отсутствие сообщений KMSAN об утечке памяти в dmesg после генерации тестовых пакетов.

Вывод​


CVE-2026-72441 представляет собой классическую ошибку инициализации памяти в ядре Linux, ведущую к утечке данных стека. Хотя прямая эксплуатация для повышения привилегий неочевидна, утечка данных ядра может быть использована для обхода защитных механизмов, таких как KASLR. Рекомендуется своевременное обновление ядра и мониторинг журналов на наличие сообщений KMSAN.

Официальные источники​


  1. NVD — CVE-2026-72441
  2. FIRST EPSS — CVE-2026-72441
  3. ieee802154: fix kernel-infoleak in dgram_recvmsg() - kernel/git/stable/linux.git - Linux kernel stable tree
  4. ieee802154: fix kernel-infoleak in dgram_recvmsg() - kernel/git/stable/linux.git - Linux kernel stable tree
  5. ieee802154: fix kernel-infoleak in dgram_recvmsg() - kernel/git/stable/linux.git - Linux kernel stable tree
  6. ieee802154: fix kernel-infoleak in dgram_recvmsg() - kernel/git/stable/linux.git - Linux kernel stable tree
  7. ieee802154: fix kernel-infoleak in dgram_recvmsg() - kernel/git/stable/linux.git - Linux kernel stable tree
  8. ieee802154: fix kernel-infoleak in dgram_recvmsg() - kernel/git/stable/linux.git - Linux kernel stable tree
  9. ieee802154: fix kernel-infoleak in dgram_recvmsg() - kernel/git/stable/linux.git - Linux kernel stable tree
  10. ieee802154: fix kernel-infoleak in dgram_recvmsg() - kernel/git/stable/linux.git - Linux kernel stable tree

История обновлений статьи​


  • 17.08.2026 — Опубликована первая версия материала.
  • 19.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
 
Последнее редактирование:
Назад
Верх Низ