CVE: CVE-2026-64586
Продукт: Linux Kernel
Дата публикации: 06.08.2026
Критичность: HIGH
CVSS: 8.8 (3.1)
EPSS: 0,25%; процентиль 16,04%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В драйвере
brcmfmac ядра Linux обнаружен дефект жизненного цикла асинхронной задачи bus_reset. При удалении устройства память структуры драйвера освобождается без отмены запланированной работы, что приводит к обращению к освобождённой памяти.Проблема затрагивает контроллеры Broadcom, подключённые по PCIe, SDIO и USB. В статье описана механика гонки, условия эксплуатации и порядок проверки исправления.
Основные характеристики
Риск связан с нарушением порядка освобождения ресурсов и завершения асинхронной работы в драйвере Wi-Fi Broadcom. Если колбэк
bus_reset выполняется после освобождения структуры drvr, возникает обращение к невалидной памяти, что может привести к падению ядра или компрометации системы.- Тип ошибки: Use-After-Free (UAF) в контексте управления асинхронными задачами.
- CVSS 3.1: 8.8 (HIGH). Вектор:
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Оценщик указывает на локальный доступ (Adjacent) и отсутствие необходимости в привилегиях.
- EPSS: 0,25% (0.00249). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая.
- Эксплуатация: Публичные данные о подтверждённой эксплуатации в реальных атаках отсутствуют.
- Обнаружение: Дефект найден с помощью внутреннего инструмента статического анализа.
Какие продукты и версии затронуты
Уязвимость затрагивает ядро Linux, в котором включён драйвер
brcmfmac для контроллеров Broadcom. Проблема распространяется на все варианты подключения, использующие этот драйвер: PCIe, SDIO и USB.- Компонент:
drivers/net/wireless/broadcom/brcm80211/brcmfmac.
- Шины: PCIe, SDIO, USB.
- Версии: Точные номера версий ядра, в которых присутствует уязвимость, не раскрыты в предоставленных источниках. Известно, что проблема была введена коммитом
4684997d9eeaи исправлена в серии патчей, опубликованных в 2026 году.
Для определения подверженности системы необходимо проверить наличие драйвера и версию ядра, сверив её с официальными списками исправлений дистрибутива.
Причина уязвимости
Причина дефекта кроется в отсутствии синхронизации между асинхронной задачей
bus_reset и путём освобождения ресурсов драйвера. Функции brcmf_fw_crashed() и запись в debugfs reset планируют выполнение drvr->bus_reset. Колбэк этой задачи восстанавливает структуру drvr через container_of() и обращается к ней.Путь удаления устройства (
brcmf_free -> wiphy_free) освобождает память drvr, не дожидаясь завершения или отмены запланированной задачи. В результате колбэк bus_reset может быть отложен или выполняться в момент, когда структура drvr уже освобождена. Это приводит к обращению к освобождённой памяти (Use-After-Free).Отмена задачи не могла быть реализована в
brcmf_detach() или brcmf_free(), так как колбэк задачи вызывает эти же функции через операции шины, что привело бы к взаимной блокировке (deadlock).Как работает атака
Атакующий должен инициировать сценарий, при котором задача
bus_reset будет запланирована или выполнена в момент удаления устройства. Триггером может стать сбой прошивки (firmware crash) или ручная запись в debugfs.- Инициация сброса: Прошивка контроллера Broadcom останавливается или падает. Функция
brcmf_fw_crashed()срабатывает и планирует задачуbus_reset.
- Начало удаления: Одновременно с этим или сразу после запуска задачи начинается процесс удаления устройства (например, физическое отключение или сбой шины).
- Гонка (Race Condition): Путь удаления освобождает структуру
drvr. Если задачаbus_resetещё не завершила выполнение или только что была запланирована, её колбэк обращается к уже освобождённой памяти.
- Последствия: Обращение к невалидной памяти может привести к повреждению данных, падению ядра (kernel panic) или, в худшем случае, к выполнению кода в контексте ядра.
Условия успешной эксплуатации
Для успешной эксплуатации уязвимости необходимо соблюдение ряда условий, связанных с аппаратной конфигурацией и состоянием системы.
- Наличие оборудования: Система должна использовать Wi-Fi контроллер Broadcom, поддерживаемый драйвером
brcmfmac.
- Доступ к шине: Уязвимость проявляется при работе с шинами PCIe, SDIO или USB, где реализован механизм сброса шины.
- Состояние прошивки: Требуется сбой или остановка прошивки контроллера, либо доступ к записи в debugfs для ручного инициирования сброса.
- Временное окно: Атакующий должен попасть в узкое временное окно между освобождением памяти и выполнением колбэка задачи.
Так как вектор CVSS указывает на
AV:A (Adjacent), атакующий, вероятно, должен находиться в локальной сети или иметь физический доступ к устройству для инициирования сброса прошивки.Возможный сценарий атаки
Сценарий атаки строится на эксплуатации гонки при удалении устройства. Атакующий, имеющий доступ к локальной сети, может попытаться вызвать сбой прошивки Wi-Fi контроллера Broadcom.
Например, путем отправки специально сформированных пакетов или использования уязвимости в протоколе. После срыва прошивки драйвер
brcmfmac планирует задачу bus_reset для восстановления связи.Если в этот момент устройство начинает удаляться (например, из-за нестабильности шины или действий атакующего), память драйвера освобождается. Задача
bus_reset, продолжая выполнение, обращается к освобождённой структуре drvr. Это приводит к неопределенному поведению ядра.В зависимости от состояния памяти, атакующий может получить контроль над потоком выполнения ядра, что позволит повысить привилегии или выполнить произвольный код.
Есть ли публичный эксплойт
На момент публикации данных публичный эксплойт (PoC) для CVE-2026-64586 не опубликован. В источниках указано, что проблема была обнаружена с помощью внутреннего инструмента статического анализа (in-house static analysis tool).
Отсутствие публичного эксплойта не означает, что атака невозможна. Механика уязвимости (Use-After-Free) хорошо изучена, и разработчики могут создать эксплойт на основе анализа кода патча. Однако подтверждённых случаев эксплуатации в реальных атаках (in-the-wild) в предоставленных данных нет.
Признаки эксплуатации
Специфические индикаторы компрометации (IOC) для этой уязвимости не определены, так как она не связана с сетевой активностью или созданием файлов. Однако можно использовать общие признаки нестабильности драйвера.
- Сбои прошивки: Частые сообщения в журнале ядра о падении прошивки Broadcom (
Firmware has halted or crashed).
- Паник ядра: Записи в
dmesgили/var/log/kern.logо kernel panic, segfault или oops в модулеbrcmfmac.
- Аномалии шины: Сообщения об ошибках PCIe, SDIO или USB, связанные с контроллером Broadcom.
Эти признаки неспецифичны и могут быть вызваны аппаратными сбоями или другими дефектами драйвера. Их наличие требует дополнительной проверки, но не является доказательством атаки.
Как обнаружить атаку
Обнаружение эксплуатации или наличия уязвимости требует мониторинга состояния драйвера и ядра.
- Мониторинг журналов: Настройка алертов на сообщения
brcmfmacвdmesgи системных логах. Особое внимание следует уделять сообщениям о сбросах шины и падении прошивки.
- Анализ стабильности: Отслеживание частоты перезагрузок или зависаний Wi-Fi интерфейса. Нестабильная работа контроллера может указывать на срабатывание уязвимости.
- Проверка версии: Регулярная сверка версии ядра с официальными списками исправлений. Если ядро не содержит патчи, система считается уязвимой.
Так как уязвимость эксплуатируется локально (Adjacent), сетевые IDS/IPS не смогут её обнаружить. Основной упор делается на хост-мониторинг и управление обновлениями.
Как проверить свою версию
Для проверки версии ядра и наличия драйвера
brcmfmac можно использовать следующие команды. Они безопасны и не изменяют состояние системы.
Bash:
# Проверка версии ядра
uname -r
# Подробная информация о ядре
uname -a
# Информация из /proc
cat /proc/version
# Проверка загрузки модуля brcmfmac
lsmod | grep brcmfmac
# Проверка наличия устройств Broadcom
lspci | grep -i broadcom
lsusb | grep -i broadcom
Если модуль
brcmfmac загружен, а версия ядра не включает исправления (см. раздел «Исправление»), система подвержена риску. Точные номера версий ядра, в которых устранена уязвимость, необходимо уточнять в документации вашего дистрибутива Linux.Исправление
Единственным надежным способом устранения уязвимости является обновление ядра Linux до версии, содержащей соответствующие патчи. Патч был принят в основную ветку и стабильные ветки ядра.
- Обновление ядра: Используйте штатные средства обновления вашего дистрибутива (apt, yum, dnf, pacman и т.д.) для установки последней версии ядра.
- Проверка патчей: Убедитесь, что ядро содержит коммиты, исправляющие проблему в
brcmfmac. В официальных источниках указаны коммиты, такие как02d378828af8и другие, которые вносят изменения в файлыcore.c,pcie.c,sdio.cиusb.c.
- Перезагрузка: После обновления ядра требуется перезагрузка системы для применения изменений.
Не рекомендуется применять ручные патчи к исходникам ядра без глубокого понимания последствий. Используйте официальные пакеты дистрибутива.
Временные меры защиты
Пока обновление ядра не установлено, можно применить временные меры для снижения риска.
- Отключение Wi-Fi: Если Wi-Fi не критичен, отключите интерфейс или выгрузите модуль
brcmfmac.
Bash:# Выгрузка модуля (если возможно) sudo rmmod brcmfmac - Ограничение доступа: Ограничьте физический и сетевой доступ к устройствам, использующим контроллеры Broadcom. Так как вектор атаки
AV:A, атакующий должен быть в локальной сети или иметь физический доступ.
- Мониторинг: Усиленный мониторинг журналов ядра на предмет сбоев прошивки и падений драйвера.
Эти меры не устраняют уязвимость, но снижают вероятность её эксплуатации. Они не заменяют обновление ядра.
Как проверить устранение уязвимости
После обновления ядра необходимо убедиться, что уязвимость устранена.
- Проверка версии: Убедитесь, что система работает на новой версии ядра.
Bash:uname -r - Проверка патчей: Сверьте версию ядра с официальными списками исправлений. Убедитесь, что в ядре присутствуют изменения, связанные с
brcmfmacиbus_reset.
- Функциональное тестирование: Проверьте работоспособность Wi-Fi интерфейса. Убедитесь, что драйвер корректно загружается и работает.
- Мониторинг: Продолжайте наблюдать за стабильностью системы в течение нескольких дней. Отсутствие сбоев прошивки и падений драйвера является косвенным подтверждением исправления.
Если после обновления наблюдаются сбои, обратитесь к документации дистрибутива или сообществу разработчиков.
Вывод
CVE-2026-64586 представляет собой серьезную уязвимость в драйвере
brcmfmac, способную привести к падению ядра или компрометации системы. Риск связан с обращением к освобождённой памяти при гонке между сбросом шины и удалением устройства. Хотя публичный эксплойт отсутствует, механика дефекта позволяет предположить возможность эксплуатации.Администраторам систем с контроллерами Broadcom рекомендуется срочно обновить ядро до последней версии. До применения патча следует ограничить доступ к устройствам и мониторить стабильность драйвера. Уязвимость подчеркивает важность своевременного обновления ядра и мониторинга состояния драйверов.
Официальные источники
- NVD — CVE-2026-64586
- FIRST EPSS — CVE-2026-64586
- wifi: brcmfmac: drain bus_reset work on device removal - kernel/git/stable/linux.git - Linux kernel stable tree
- wifi: brcmfmac: drain bus_reset work on device removal - kernel/git/stable/linux.git - Linux kernel stable tree
- wifi: brcmfmac: drain bus_reset work on device removal - kernel/git/stable/linux.git - Linux kernel stable tree
- wifi: brcmfmac: drain bus_reset work on device removal - kernel/git/stable/linux.git - Linux kernel stable tree
- wifi: brcmfmac: drain bus_reset work on device removal - kernel/git/stable/linux.git - Linux kernel stable tree
- wifi: brcmfmac: drain bus_reset work on device removal - kernel/git/stable/linux.git - Linux kernel stable tree
- wifi: brcmfmac: drain bus_reset work on device removal - kernel/git/stable/linux.git - Linux kernel stable tree
- wifi: brcmfmac: drain bus_reset work on device removal - kernel/git/stable/linux.git - Linux kernel stable tree
История обновлений статьи
- 11.08.2026 — Опубликована первая версия материала.
- 26.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
