CVE-2026-64557 в Linux Kernel: use-after-free в Bluetooth L2CAP

CVE: CVE-2026-64557
Продукт: Linux Kernel
Дата публикации: 29.07.2026
Критичность: HIGH
CVSS: 8.8 (3.1)
EPSS: 0,24%; процентиль 15,05%
CISA KEV: нет подтверждения в каталоге CISA KEV

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


В подсистеме Bluetooth L2CAP ядра Linux устранена ошибка use-after-free, возникающая при обработке входящих соединений. Дефект связан с нарушением порядка управления блокировками и жизненным циклом объектов. Материал описывает механику гонки состояний, условия эксплуатации и методы проверки исправления.

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


Уязвимость представляет собой риск нарушения целостности памяти в ядре при работе с Bluetooth-соединениями. При успешной эксплуатации возможна потеря данных, отказ в обслуживании или повышение привилегий.

  • Тип ошибки: Use-after-free — обращение к памяти после её освобождения.
  • 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.
  • Условия атаки: Вектор AV:A указывает на необходимость нахождения в радиусе действия Bluetooth-сигнала.
  • Эксплуатация: Публичные данные о массовой эксплуатации в каталоге CISA KEV отсутствуют.
  • EPSS: 0,24% (процентиль 15,05%) — низкая вероятность эксплуатации в ближайшие 30 дней.

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


Уязвимость затрагивает подсистему Bluetooth в ядре Linux. Конкретные номера версий ядра, в которых присутствует ошибка, в предоставленных источниках не перечислены.

Исправление внесено в ветки stable ядра. Для определения актуального состояния системы необходимо сверить установленную версию ядра с официальными релизами, содержащими патч с идентификатором 6fef032af0092ed5ccb767239a9ac1bc38c08a40.

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


Причина ошибки кроется в нарушении порядка управления блокировками и жизненным циклом объектов в функции l2cap_sock_new_connection_cb().

В исходном коде функция возвращала указатель на канал l2cap_pi(sk)->chan после вызова release_sock(parent). Освобождение блокировки родительского сокета делало дочерний сокет доступным для других задач через очередь accept. В результате другая задача могла принять соединение и освободить память сокета до того, как исходная функция завершала работу и обращалась к этому указателю.

Это приводило к обращению к уже освобожденной памяти (use-after-free), что нарушает целостность данных в ядре.

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


Атака эксплуатирует гонку состояний (race condition) при обработке входящего Bluetooth-соединения.

  1. Уязвимая функция l2cap_sock_new_connection_cb() обрабатывает новое соединение.
  2. Функция вызывает release_sock(parent), что освобождает блокировку родительского сокета.
  3. После освобождения блокировки дочерний сокет становится видимым для других задач через очередь accept.
  4. Конкурирующая задача может выполнить accept() и освободить память сокета.
  5. Исходная функция продолжает выполнение и обращается к указателю l2cap_pi(sk)->chan, который теперь указывает на освобожденную память.

Исправление переносит управление жизненным циклом канала на ядро подсистемы. Теперь канал выделяется и добавляется в список соединений до вызова обратного вызова, что гарантирует его живость даже после освобождения блокировки родительского сокета.

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


Для успешной эксплуатации уязвимости атакующему необходимо:

  • Находиться в радиусе действия Bluetooth-сигнала целевой системы.
  • Иметь возможность инициировать входящее L2CAP-соединение с целевым устройством.
  • Создать условия для гонки состояний, при которой другая задача освобождает сокет до завершения обработки в уязвимой функции.

Уязвимость не требует предварительной аутентикации или взаимодействия пользователя, но зависит от физической близости к устройству.

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


Атакующий находится в радиусе действия Bluetooth-сигнала целевого устройства. Он инициирует входящее L2CAP-соединение.

В ядре запускается обработка соединения в функции l2cap_sock_new_connection_cb(). После освобождения блокировки родительского сокета атакующий (или конкурирующая задача) быстро вызывает accept(), что приводит к освобождению памяти сокета.

Исходная функция продолжает выполнение и обращается к освобожденной памяти, вызывая сбой ядра или позволяя атакующему контролировать выполнение кода.

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


В предоставленных источниках отсутствуют сведения о публичных эксплойтах, PoC или подтвержденной эксплуатации в реальных атаках. Уязвимость внесена в каталог CVE со статусом "Received". Отсутствие данных об эксплуатации не означает, что эксплойт не существует, но подтвержденных фактов в официальных источниках нет.

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


Специфичные индикаторы компрометации (IOC) для данной уязвимости в источниках не раскрыты. Общие неспецифичные признаки, которые могут указывать на атаки на Bluetooth-подсистему:

  • Аномальные входящие Bluetooth-соединения в журналах ядра.
  • Сбои или перезагрузки системы, связанные с обработкой Bluetooth-трафика.
  • Записи в dmesg или journalctl с ошибками, связанными с L2CAP или Bluetooth-сокетами.

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


Для обнаружения потенциальной эксплуатации или сбоев, связанных с уязвимостью, рекомендуется:

  • Мониторинг журналов ядра на наличие ошибок, связанных с Bluetooth L2CAP.
  • Анализ логоов dmesg и journalctl на сообщения об освобождении памяти или сбоех в подсистеме Bluetooth.
  • Проверка входящих Bluetooth-соединений на аномальную активность.

Специфичные сигнатуры для данной уязвимости в источниках не предоставлены.

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


Для проверки версии ядра и определения необходимости обновления используйте следующие команды:

Bash:
uname -r
uname -a
cat /proc/version

Сравните полученную версию с официальными релизами ядра, содержащими исправление. Патч идентифицируется коммитом 6fef032af0092ed5ccb767239a9ac1bc38c08a40 в репозитории Linux kernel.

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


Единственным подтвержденным методом устранения уязвимости является обновление ядра Linux до версии, содержащей исправление.

  • Обновите ядро до последней доступной версии в вашем дистрибутиве.
  • Убедитесь, что в ядре присутствует коммит 6fef032af0092ed5ccb767239a9ac1bc38c08a40.
  • Перезагрузите систему после обновления ядра для применения изменений.

Исправление перерабатывает управление жизненным циклом каналов L2CAP, исключая возможность обращения к освобожденной памяти.

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


Пока не установлено обновление ядра, можно снизить риск эксплуатации:

  • Отключите Bluetooth-адаптер, если он не используется.
  • Ограничьте доступ к Bluetooth-устройствам в радиусе действия.
  • Используйте firewall для блокировки входящих Bluetooth-соединений, если это поддерживается вашей конфигурацией.

Эти меры не устраняют уязвимость, но снижают вероятность успешной атаки.

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


После обновления ядра проверьте, что исправление применено:

Bash:
uname -r

Убедитесь, что версия ядра соответствует последней стабильной версии вашего дистрибутива. Для подтверждения наличия конкретного коммита можно использовать:

Bash:
git log --oneline | grep 6fef032af0092ed5ccb767239a9ac1bc38c08a40

(если вы используете исходники ядра). В бинарных дистрибутивах сверкайте версию с официальными advisory-записями.

Вывод​


CVE-2026-64557 представляет собой серьезную уязвимость в подсистеме Bluetooth Linux, способную привести к сбою ядра или повышению привилегий. Администраторам необходимо обновить ядро до версии, содержащей исправление, и при необходимости временно отключить Bluetooth для снижения риска. Мониторинг журналов системы поможет выявить аномальную активность, связанную с Bluetooth-соединениями.

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


  1. NVD — CVE-2026-64557
  2. FIRST EPSS — CVE-2026-64557
  3. Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_new_connection_cb() - kernel/git/stable/linux.git - Linux kernel stable tree
  4. Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_new_connection_cb() - kernel/git/stable/linux.git - Linux kernel stable tree
  5. Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_new_connection_cb() - kernel/git/stable/linux.git - Linux kernel stable tree
  6. Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_new_connection_cb() - kernel/git/stable/linux.git - Linux kernel stable tree
  7. Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_new_connection_cb() - kernel/git/stable/linux.git - Linux kernel stable tree
  8. Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_new_connection_cb() - kernel/git/stable/linux.git - Linux kernel stable tree
  9. CVEs — The Linux Kernel documentation

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


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