CVE: CVE-2026-80914
Продукт: Linux Kernel
Дата публикации: 09.09.2026
Критичность: HIGH
CVSS: 8.8 (3.1)
EPSS: 0,22%; процентиль 12,29%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В стеке Bluetooth ISO ядра Linux обнаружена уязвимость, позволяющая нарушителю из локальной сети вызвать обращение к освобождённой памяти. Ошибка возникает из-за гонки состояний при одновременном закрытии listener-сокета и обработке нового соединения. Материал описывает техническую механику бага, условия эксплуатации и способы проверки наличия исправления в ядре.
Основные характеристики
Уязвимость относится к классу use-after-free в подсистеме Bluetooth ISO. При успешной эксплуатации нарушитель из локальной сети может повредить память ядра, что потенциально ведёт к выполнению кода или отказу в обслуживании.
- 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. Высокая оценка обусловлена полным воздействием на конфиденциальность, целостность и доступность при локальном векторе атаки.
- EPSS: 0,22% (процентиль 12,29%). Метрика отражает низкую вероятность публичной эксплуатации в ближайшие 30 дней.
- Тип ошибки: Обращение к освобождённой памяти (use-after-free) из-за нарушения порядка управления ссылками на сокет.
- Вектор атаки: Локальная сеть (Adjacent Network). Требуется физическая или радиочастотная близость к устройству, но не локальный доступ к ОС.
- Исправление: Патч добавляет повторную проверку состояния сокета после блокировки, предотвращая создание дочернего соединения на основе освобождённого объекта.
Какие продукты и версии затронуты
Уязвимость затрагивает ядра Linux, содержащие код обработки Bluetooth ISO, введённый в коммите
ccf74f2390d60. Точный перечень уязвимых версий зависит от дистрибутива и включённых патчей.- Компонент:
net/bluetooth/iso.c. Функцияiso_conn_ready()не проверяет валидность listener-сокета после получения ссылки.
- Исправляющий коммит (mainline):
560bef609fa5992745929e8d7d458b9d88dd2830.
- Backports в stable-ветки:
03288b7447c9,2387cd06a2c0,49fd7116f76b.
- Дистрибутивы: Информация о конкретных версиях пакетов отсутствует в предоставленных источниках. Необходимо сверяться с официальными уведомлениями вендоров.
Причина уязвимости
Причина ошибки — нарушение порядка управления ссылками на сокет в функции
iso_conn_ready(). Функция iso_get_sock() получает ссылку на listener-сокет, но не гарантирует, что объект останется валидным до конца выполнения.Если listener-сокет закрывается в другом потоке между получением ссылки и блокировкой сокета, ссылка может стать последней. При её освобождении память сокета освобождается. Однако дочерний сокет уже связан с этим «освобождённым» родителем.
При последующем отключении дочернего соединения вызов
iso_chan_del() обращается к висячей указателю, вызывая use-after-free. Исправление копирует подход из коммита 0d255e63fcf3: после блокировки сокета проверяется, что он всё ещё находится в состоянии BT_LISTEN и не помечен как SOCK_ZAPPED. Если состояние изменилось, функция завершается без создания дочернего сокета.Как работает атака
Атакующий из локальной сети инициирует подключение Bluetooth ISO к устройству, слушающему на определённом канале. В момент, когда ядро обрабатывает готовность соединения (
iso_conn_ready), атакующий или локальный процесс закрывает listener-сокет.Гонка состояний возникает между вызовом
iso_get_sock() и lock_sock(). Если сокет закрывается в этот интервал, ядро продолжает создавать дочерний сокет, связывая его с уже освобождённой структурой родителя.При последующем разрыве соединения ядро обращается к освобождённой памяти через
bt_accept_unlink() и parent->***(), что приводит к повреждению памяти или падению ядра. Эксплуатация требует точного тайминга, но при успешном срабатывании позволяет нарушителю выполнить код в контексте ядра или вызвать отказ в обслуживании.Условия успешной эксплуатации
Для успешной эксплуатации уязвимости необходимо соблюдение следующих условий:
- Доступ к локальной сети: Атакующий должен находиться в радиусе действия Bluetooth-устройства (AV:A).
- Поддержка Bluetooth ISO: Ядро должно быть скомпилировано с поддержкой протокола ISO (
BTPROTO_ISO).
- Активный listener-сокет: На устройстве должен работать процесс, слушающий на ISO-канале, который можно закрыть в нужный момент.
- Отсутствие патча: В ядре не должно быть исправления, добавляющего проверку состояния сокета после
lock_sock().
Возможный сценарий атаки
Сценарий атаки предполагает, что атакующий находится в локальной сети и имеет доступ к Bluetooth-устройству жертвы. Жертва использует приложение, работающее с Bluetooth ISO (например, для передачи аудио или данных).
Атакующий инициирует подключение к ISO-каналу. В момент, когда ядро обрабатывает запрос и вызывает
iso_conn_ready(), атакующий или локальный процесс закрывает listener-сокет.Из-за гонки состояний ядро не замечает закрытия и создаёт дочерний сокет, связанный с освобождённой памятью. При последующем отключении соединения ядро обращается к висячей указателю, что приводит к use-after-free. Атакующий может использовать это для выполнения кода в ядре или вызова паники.
Есть ли публичный эксплойт
Публичные данные о готовых эксплоитах или PoC для CVE-2026-80914 в предоставленных источниках отсутствуют. Официальные коммиты содержат только описание исправления и технический анализ бага.
Отсутствие публичного эксплойта не означает, что уязвимость не может быть эксплуатирована. Учитывая механику гонки состояний и доступность Bluetooth-интерфейса, создание PoC технически возможно. Рекомендуется относиться к уязвимости как к потенциально эксплуатируемой, особенно в средах с высоким уровнем доверия к локальной сети.
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для этой уязвимости не опубликованы. Обращение к освобождённой памяти в ядре может проявляться как неспецифичные признаки:
- Паника ядра (Kernel Panic): Случайные падения системы при работе с Bluetooth-устройствами.
- Аномальные логи Bluetooth: Записи в
dmesgили системном журнале об ошибках в модулеbtisoилиbluetooth.
- Неожиданные разрывы соединений: Частые обрывы ISO-соединений без видимых причин.
Эти признаки не являются уникальными для CVE-2026-80914 и могут указывать на другие проблемы с Bluetooth-стекком.
Как обнаружить атаку
Обнаружение атаки затруднено из-за отсутствия специфичных сигнатур. Рекомендуется использовать следующие методы:
- Мониторинг логов: Отслеживайте записи в
dmesgиjournalctlна наличие ошибок, связанных сbtiso,iso_conn_readyили use-after-free.
- Аудит Bluetooth-активности: Фиксируйте попытки подключения к ISO-каналам и их разрывы. Аномальная частота подключений и разрывов может указывать на эксплуатацию.
- Использование инструментов отладки: Включите
CONFIG_DEBUG_KOBJECTиCONFIG_SLUB_DEBUGдля детекции обращений к освобождённой памяти в тестовых средах.
В продакшене эти методы могут быть ресурсоёмкими, поэтому приоритет отдаётся предотвращению через обновление ядра.
Как проверить свою версию
Для проверки версии ядра и наличия патча используйте следующие команды:
Bash:
uname -r
uname -a
cat /proc/version
Чтобы проверить, включён ли патч, используйте
git в исходниках ядра или проверьте наличие коммитов в вашем дистрибутиве:
Bash:
git log --oneline | grep -E "03288b7447c9|2387cd06a2c0|49fd7116f76b|560bef609fa5"
Если коммиты отсутствуют, ядро уязвимо. Для бинарных пакетов обратитесь к базе данных уязвимостей вашего дистрибутива.
Исправление
Единственный надёжный способ устранения уязвимости — обновление ядра до версии, содержащей патч.
- Оригинальный патч: Коммит
560bef609fa5992745929e8d7d458b9d88dd2830в mainline.
- Stable-ветки: Backports доступны в коммитах
03288b7447c9,2387cd06a2c0,49fd7116f76b.
- Дистрибутивы: Обновите ядро через штатные средства управления пакетами. Убедитесь, что версия ядра включает указанные коммиты.
Не используйте cherry-pick отдельных патчей без полного обновления, так как ядро тестируется как единое целое.
Временные меры защиты
Пока обновление ядра не установлено, можно снизить риск следующими мерами:
- Отключение Bluetooth: Если Bluetooth не используется, отключите адаптер или модуль
bluetooth.
- Ограничение доступа к ISO-каналам: Настройте политики, запрещающие использование Bluetooth ISO для критических приложений.
- Изоляция устройств: Разместите устройства, использующие Bluetooth ISO, в изолированной сети с ограниченным доступом.
Эти меры не устраняют уязвимость, но снижают вероятность успешной атаки.
Как проверить устранение уязвимости
После обновления ядра проверьте, что патч применён:
- Перезагрузите систему с новым ядром.
- Выполните
uname -rи убедитесь, что загружена новая версия.
- Проверьте наличие коммитов в исходниках или используйте
git logв дереве ядра.
- Протестируйте работу Bluetooth ISO, убедившись, что соединения устанавливаются и разрываются без ошибок в логах.
Если ошибки use-after-free в
dmesg не появляются, исправление работает.Вывод
CVE-2026-80914 — серьёзная уязвимость в Bluetooth-стеке Linux, позволяющая нарушителю из локальной сети вызвать обращение к освобождённой памяти. Механизм атаки основан на гонке состояний при управлении сокетами ISO.
Обновление ядра до версии с патчем является обязательным. До обновления рекомендуется ограничить использование Bluetooth ISO и изолировать уязвимые устройства.
Официальные источники
- NVD — CVE-2026-80914
- FIRST EPSS — CVE-2026-80914
- Bluetooth: ISO: fix use-after-free of listener socket in iso_conn_ready - kernel/git/stable/linux.git - Linux kernel stable tree
- Bluetooth: ISO: fix use-after-free of listener socket in iso_conn_ready - kernel/git/stable/linux.git - Linux kernel stable tree
- Bluetooth: ISO: fix use-after-free of listener socket in iso_conn_ready - kernel/git/stable/linux.git - Linux kernel stable tree
- Bluetooth: ISO: fix use-after-free of listener socket in iso_conn_ready - kernel/git/stable/linux.git - Linux kernel stable tree
- CVEs — The Linux Kernel documentation
История обновлений статьи
- 11.09.2026 — Опубликована первая версия материала.
