CVE: CVE-2026-64586
Продукт: Linux Kernel
Дата публикации: 06.08.2026
Критичность: HIGH
CVSS: 8.8 (3.1)
EPSS: 0,24%; процентиль 15,01%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Уязвимость CVE-2026-64586 в Linux Kernel связана с некорректной обработкой состояния устройства Wi-Fi при удалении, что может привести к состоянию гонки и повреждению памяти. Исправление включает механизм синхронизации через мьютекс для обеспечения безопасного завершения асинхронных задач во время удаления устройства.
Основные характеристики
CVE-2026-64586 представляет собой уязвимость типа memory corruption в компоненте Linux Kernel, связанную с модулем wifi: brcmfmac. Она возникает при попытке освободить ресурсы устройства Wi-Fi во время его удаления, если ранее запущенная задача bus_reset всё ещё выполняется или находится в очереди. Уязвимость позволяет потенциально получить контроль над памятью или вызвать отказ в обслуживании. Исправление применяет механизм синхронизации через мьютекс, чтобы гарантировать завершение всех асинхронных задач до окончания удаления устройства.
Какие продукты и версии затронуты
Уязвимость затрагивает Linux Kernel версий, в которых используется драйвер brcmfmac для управления беспроводными устройствами Broadcom. Это включает устройства PCIe, SDIO и USB, поддерживающие протоколы brcmfmac. В частности, затронуты устройства, использующие драйверы PCIe, SDIO и USB, связанные с контроллерами Wi-Fi от Broadcom. Уязвимость распространяется на все версии ядра, где реализовано поведение, описанное в патче, включая стабильные ветки, где применяются изменения, внесённые в рамках исправления. Системы, использующие драйверы brcmfmac с функциональностью, зависящей от bus_reset, подвержены риску.
Причина уязвимости
Корневая проблема связана с тем, что функция brcmf_fw_crashed() и запись в debugfs "reset" планируют выполнение drvr->bus_reset, которая обращается к drvr через container_of(). При удалении устройства путь освобождает drvr (brcmf_free -> wiphy_free) без завершения работы, что позволяет callback bus_reset продолжать работу даже после освобождения структуры данных. Это создаёт состояние гонки, где указатель на освобожденную структуру может быть использован, вызывая повреждение памяти или неопределённое поведение. Проблема возникает из-за отсутствия механизма синхронизации между планированием и завершением работы во время удаления устройства.
Как работает атака
Атака возможна, если в системе есть активное Wi-Fi устройство, использующее драйвер brcmfmac, и происходит одновременное удаление устройства и запуск функции brcmf_fw_crashed() или доступ к debugfs "reset". В этом случае, если работа bus_reset уже запущена или находится в очереди, она может продолжать выполняться после того, как структура drvr будет освобождена. Это может привести к чтению/записи в освобожденную память, что может быть использовано для получения контроля над процессом или вызова отказа в обслуживании. Механизм синхронизации через мьютекс и функции отмены работы, применяемые в исправлении, обеспечивают атомарность операций и предотвращают доступ к освобожденным данным.
Условия успешной эксплуатации
Для эксплуатации уязвимости требуется наличие активного Wi-Fi устройства, поддерживающего драйвер brcmfmac, и возможность вызвать событие, которое приведёт к запуску функции brcmf_fw_crashed() или доступу к debugfs "reset". Также необходимо, чтобы устройство было удалено в момент, когда bus_reset уже запущен или находится в очереди. Уязвимость может быть использована в системах с активным Wi-Fi, где используются драйверы PCIe, SDIO или USB. Системы, которые не используют Wi-Fi устройства или не имеют активных драйверов brcmfmac, не подвержены этой уязвимости. Специфичные условия эксплуатации не указаны, но предполагается, что атакующий должен иметь возможность взаимодействовать с системой, где запущен процесс, связанный с Wi-Fi.
Возможный сценарий атаки
Сценарий атаки предполагает, что система содержит Wi-Fi устройство, использующее драйвер brcmfmac, и происходит одновременное удаление устройства и запуск функции brcmf_fw_crashed(). Например, при отключении Wi-Fi адаптера, который находится в состоянии, когда bus_reset уже запущен или находится в очереди, может произойти состояние гонки. Если при этом система пытается использовать освобожденную структуру данных, это может привести к повреждению памяти или неопределённому поведению. В результате атакующий может заставить систему работать с некорректными данными, что может быть использовано для получения контроля над процессом или вызова отказа в обслуживании. Исправление применяет механизм синхронизации, который гарантирует завершение всех задач до окончания удаления устройства.
Есть ли публичный эксплойт
В доступных источниках не указано наличие публичного эксплойта или PoC для CVE-2026-64586. Информация о техническом описании и исправлении указывает на то, что уязвимость была найдена с помощью статического анализа и исправлена в рамках патча. Отсутствие специфичных данных о эксплуатации не означает отсутствие потенциальной уязвимости, но также не подтверждает её активное использование. В случае наличия эксплойта, он, скорее всего, будет использовать состояние гонки для получения контроля над памятью или вызова отказа в обслуживании.
Признаки эксплуатации
При отсутствии специфичных IOC, можно использовать общие методы мониторинга, такие как отслеживание изменений в системных журналах, особенно связанных с Wi-Fi устройствами, и анализ событий, связанных с освобождением ресурсов. Также можно наблюдать за аномалиями в работе драйвера brcmfmac, например, при неожиданном поведении при удалении устройства. Наличие ошибок в логах, связанных с bus_reset, может указывать на возможную уязвимость. Однако, без специфичных данных, такие сигналы могут быть ложными положительными результатами.
Как обнаружить атаку
Обнаружение уязвимости возможно через мониторинг системных журналов и отслеживание событий, связанных с Wi-Fi устройствами, особенно при удалении устройств, где используется драйвер brcmfmac. Системы, использующие драйверы PCIe, SDIO и USB, могут быть проверены на наличие активных Wi-Fi устройств. Также можно использовать команды проверки версии ядра и наличие патча, чтобы определить, установлено ли исправление. Отсутствие специфичных индикаторов не означает отсутствие уязвимости, но может указывать на необходимость более глубокой проверки.
Как проверить свою версию
Для проверки версии ядра и наличия исправления можно использовать следующие команды:
uname -r, uname -a, cat /proc/version. Эти команды покажут текущую версию ядра, установленную в системе. Для определения наличия исправления, необходимо проверить, включена ли в ядро функция, связанная с bus_reset, и наличие изменений в файле bus.h. Также можно обратиться к списку изменений в исходном коде ядра, чтобы убедиться, что патч был применён. Если система использует версию ядра, где исправление не было применено, она может быть уязвимой.Исправление
Рекомендуется немедленно обновить ядро до версии, содержащей исправление CVE-2026-64586. Это включает применение патча, который добавляет механизм синхронизации через мьютекс для обеспечения безопасного завершения асинхронных задач во время удаления устройства. Обновление должно быть выполнено на всех системах, где используется драйвер brcmfmac с функциональностью, зависящей от bus_reset. После обновления необходимо перезагрузить систему для применения изменений. Системы, где не используется драйвер brcmfmac, не подвержены уязвимости.
Временные меры защиты
В отсутствие постоянного решения, можно ограничить использование Wi-Fi устройств, использующих драйвер brcmfmac, до момента применения исправления. Также можно отключить Wi-Fi функциональность в системе, если она не требуется. В случае необходимости использования Wi-Fi, рекомендуется применять дополнительные меры безопасности, такие как мониторинг системных журналов и отслеживание событий, связанных с удалением устройств. Также можно использовать специализированные инструменты для анализа поведения драйвера brcmfmac, чтобы выявить возможные аномалии.
Как проверить устранение уязвимости
После установки исправления, необходимо проверить, что патч был успешно применён. Это можно сделать с помощью команды
uname -r для проверки версии ядра и сравнения с версией, содержащей исправление. Также можно использовать команды, которые показывают, какие изменения были внесены в файлы драйвера, например, git log или diff. Если патч был успешно применён, система должна быть перезагружена для применения изменений. После перезагрузки можно проверить, что уязвимость больше не существует, и что система работает корректно.Вывод
CVE-2026-64586 является уязвимостью в Linux Kernel, связанной с некорректной обработкой состояния устройства Wi-Fi при удалении. Исправление включает механизм синхронизации через мьютекс, чтобы гарантировать завершение всех асинхронных задач до окончания удаления устройства. Уязвимость может быть использована для получения контроля над памятью или вызова отказа в обслуживании. Рекомендуется немедленно обновить ядро до версии, содержащей исправление. Системы, где не используется драйвер brcmfmac, не подвержены уязвимости. Проверка версии ядра и применение патча являются ключевыми шагами для защиты.
Официальные источники
- 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
- CVEs — The Linux Kernel documentation
История обновлений статьи
- 11.08.2026 — Опубликована первая версия материала.
