CVE-2026-64557 в Linux Kernel: использование после освобождения в подсистеме Bluetooth L2CAP

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

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


Уязвимость CVE-2026-64557 в ядре Linux связана с состоянием использования после освобождения (use-after-free) в подсистеме Bluetooth L2CAP. При определённых условиях может происходить обращение к уже освобожденной памяти, что может привести к нарушению целостности данных или повреждению памяти. Исправление вносит изменения в механизм управления временем жизни дочерних каналов.

Базовые сведения о записи CVE и оценке риска приведены в [1].

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


CVE-2026-64557 классифицируется как уязвимость типа use-after-free в подсистеме Bluetooth L2CAP. Проблема возникает при обработке новых соединений через механизм l2cap_sock_new_connection_cb(). Некорректная синхронизация между потоками приводит к ситуации, когда родительский сокет освобождается, а дочерний сокет становится доступным для других задач, которые могут принять и освободить его до завершения обратного вызова. Это вызывает обращение к освобожденной памяти. Уязвимость имеет высокий уровень критичности CVSS 8.8 (AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H).

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


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

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


Основная причина уязвимости — функция l2cap_sock_new_connection_cb() возвращала указатель на канал (l2cap_pi(sk)->chan) после вызова release_sock(parent). После освобождения родительской блокировки новый дочерний сокет становится доступным через очередь принятия (accept queue), что позволяет другим задачам принять и освободить его до завершения обратного вызова. Это приводит к обращению к освобожденной памяти. Исправление перерабатывает механизм new_connection, чтобы ядро, а не обратный вызов, владело временем жизни дочернего канала. Теперь функция l2cap_new_connection() выделяет дочерний канал и добавляет его в список соединений до вызова обратного вызова, обеспечивая, что ссылка в списке соединений сохраняет канал живым до завершения операции.

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


Атака возможна при наличии активного Bluetooth L2CAP соединения, которое использует механизм принятия новых соединений. Когда родительский сокет освобождается, дочерний сокет становится доступным для других задач. Если задача, принимающая соединение, освобождает дочерний сокет до завершения обратного вызова, то последующее использование указателя на этот сокет в обратном вызове приводит к чтению или записи в освобожденную память. Механизм исправления изменяет порядок действий: сначала выделяется и инициализируется дочерний канал, затем он добавляется в список соединений, и только потом вызывается обратный вызов. Это гарантирует, что канал остаётся живым до завершения всех операций.

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


Для эксплуатации уязвимости необходима активная система с поддержкой Bluetooth L2CAP и возможность создания нового соединения через механизм принятия. Требуется, чтобы система выполняла многопоточную обработку соединений, где один поток освобождает родительский сокет, а другой поток может принять дочерний сокет. Уязвимость наиболее актуальна в средах, где Bluetooth используется для управления сетевыми соединениями, особенно при высокой нагрузке на подсистему Bluetooth.

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


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

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


Нет подтверждённых публичных эксплойтов для CVE-2026-64557. Информация о возможной эксплуатации уязвимости ограничивается техническим описанием механизма и исправления. Отсутствие публичных PoC или эксплуатационных сценариев не исключает возможности эксплуатации, но указывает на отсутствие активной эксплуатации в открытом доступе. Эксплуатация возможна только в условиях, где система подвержена условиям гонки между потоками.

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


В отсутствие публичных эксплойтов, индикаторы компрометации могут включать необычное поведение системы при работе с Bluetooth L2CAP, такие как сбои в работе, падения процессов или неожиданные изменения в памяти. Системы, где наблюдается высокая нагрузка на Bluetooth L2CAP, могут быть более уязвимы к данной уязвимости. Для мониторинга рекомендуется анализировать журналы ядра на наличие сообщений об ошибках или сбоях, связанных с Bluetooth L2CAP.

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


Обнаружение уязвимости возможно через анализ версий ядра Linux, установленных на системах. Системы, использующие версии ядра, где не применено исправление CVE-2026-64557, могут быть уязвимы. Проверка версии ядра с помощью команд: uname -r, uname -a, cat /proc/version. Также можно использовать инструменты анализа безопасности, которые сканируют ядро на предмет уязвимостей. Анализ логов ядра также может помочь выявить признаки использования уязвимости.

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


Для проверки версии ядра Linux, где может быть уязвимость CVE-2026-64557, выполните следующие команды:

Код:
uname -r
uname -a

Также можно использовать:

Код:
cat /proc/version

Проверьте, какие версии ядра установлены на системе. Системы, где версия ядра не содержит исправления, могут быть уязвимы к CVE-2026-64557. Обновление до версии ядра, содержащей исправление, является рекомендованным решением.

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


Рекомендуется обновить ядро Linux до версии, где исправление CVE-2026-64557 уже применено. Исправление включает переработку механизма new_connection в подсистеме Bluetooth L2CAP, чтобы ядро, а не обратный вызов, владело временем жизни дочернего канала. Это предотвращает состояние гонки, при котором один поток освобождает ресурсы, а другой продолжает использовать их. Обновление ядра должно быть выполнено в соответствии с политикой безопасности организации.

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


Временные меры защиты от уязвимости CVE-2026-64557 могут включать ограничение доступа к Bluetooth L2CAP, отключение ненужных функций Bluetooth, а также мониторинг систем на предмет необычного поведения. Также рекомендуется ограничить количество одновременных соединений через Bluetooth, чтобы снизить вероятность возникновения условий гонки. В случае невозможности немедленного обновления ядра, необходимо провести тщательный анализ системы на предмет подозрительной активности.

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


После применения исправления CVE-2026-64557, необходимо проверить, что система работает корректно. Проверьте версию ядра с помощью команд:

Код:
uname -r
uname -a

Также можно использовать:

Код:
cat /proc/version

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

Вывод​


CVE-2026-64557 представляет собой уязвимость типа use-after-free в подсистеме Bluetooth L2CAP ядра Linux. Она возникает при некорректной синхронизации между потоками при обработке новых соединений. Исправление вносит изменения в механизм управления временем жизни дочерних каналов, чтобы предотвратить состояние гонки. Администраторы должны обновить ядро до версии, где исправление уже применено, чтобы защитить системы от возможной эксплуатации уязвимости.

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


  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 — Опубликована первая версия материала.
 
Назад
Верх Низ