CVE-2026-80736 в Linux Kernel: ошибка индекса в Thunderbolt и защита

CVE: CVE-2026-80736
Продукт: Linux Kernel
Дата публикации: 03.09.2026
Критичность: HIGH
CVSS: 7.8 (3.1)
EPSS: 0,16%; процентиль 5,80%
CISA KEV: нет подтверждения в каталоге CISA KEV

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


В драйвере Thunderbolt ядра Linux обнаружена ошибка выхода за границы локального массива. При обработке групп пропускной способности функция tb_consumed_dp_bandwidth() обращается к элементу, который не существует в текущей реализации.

Это приводит к чтению неинициализированных данных и искажению расчёта доступной полосы. Статья разбирает механику ошибки, условия её проявления и способы проверки исправления.

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


Риск связан с некорректным индексированием локального массива в подсистеме Thunderbolt. Ошибка приводит к чтению памяти за границами структуры и неточному учёту зарезервированной полосы пропускания.

  • Тип ошибки: Выход за границы массива (Out-of-bounds read) в локальной переменной.
  • CVSS 3.1: 7.8 (HIGH). Вектор: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H.
  • Условия атаки: Локальный доступ, низкие привилегии, отсутствие взаимодействия пользователя.
  • Эксплуатация: Публичные данные о массовой эксплуатации отсутствуют.
  • EPSS: 0,16% (процентиль 5,80%).

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


Уязвимость затрагивает ядра Linux, содержащие драйвер Thunderbolt с функцией tb_consumed_dp_bandwidth(). Ошибка была введена в коммите 52a4490e89d7 и исправлена в последующих версиях.

  • Компонент: drivers/thunderbolt/tb.c.
  • Функция: tb_consumed_dp_bandwidth().
  • Статус: Исправление внесено в стабильные ветки ядра. Точные номера версий зависят от дистрибутива и стабильной ветки, в которую был включён патч.

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


Причина ошибки заключается в несоответствии между диапазоном допустимых идентификаторов групп и размером локального массива group_reserved[].

Валидные идентификаторы групп (Group ID) варьируются от 1 до MAX_GROUPS, при этом ID 0 зарезервирован. Функция tb_consumed_dp_bandwidth() использует Group ID напрямую как индекс для доступа к массиву. Поскольку массив был объявлен с размером MAX_GROUPS, его валидные индексы ограничены диапазоном от 0 до MAX_GROUPS - 1.

Когда в системе присутствует группа с максимальным ID (MAX_GROUPS), обращение к элементу group_reserved[MAX_GROUPS] выходит за пределы выделенной области памяти. Это приводит к чтению неинициализированных данных и исключает зарезервированную полосу пропускания последней группы из итоговой суммы.

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


Атака эксплуатирует локальный доступ к ядру через подсистему Thunderbolt. Злоумышленник с низкими привилегиями может инициировать операции, связанные с настройкой туннелирования DisplayPort, что вызывает выполнение уязвимой функции.

Механизм уязвимости базируется на чтении памяти за границами локального массива. Поскольку массив group_reserved[] находится в стеке, выход за его пределы приводит к чтению смежных данных стека. Это может привести к утечке информации о состоянии ядра или к непредсказуемому поведению при последующем использовании этих данных в логике расчёта полосы пропускания.

Кроме того, ошибка приводит к логической некорректности: зарезервированная полоса пропускания для группы с максимальным ID не учитывается при суммировании. Это может нарушить балансировку ресурсов и привести к отказу в обслуживании для других подключений, использующих Thunderbolt.

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


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

  • Локальный доступ: Злоумышленник должен иметь доступ к системе (локальная сессия или SSH).
  • Низкие привилегии: Достаточно прав обычного пользователя для взаимодействия с подсистемой Thunderbolt.
  • Наличие оборудования: Система должна иметь подключённое устройство Thunderbolt, поддерживающее туннелирование DisplayPort.
  • Загрузка драйвера: Модуль thunderbolt должен быть загружен в ядро.

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


Злоумышленник с правами обычного пользователя подключает устройство Thunderbolt, поддерживающее DisplayPort. Через утилиты управления или системные вызовы он инициирует создание туннеля для группы с максимальным идентификатором.

При обработке запроса ядро вызывает функцию tb_consumed_dp_bandwidth(). Функция пытается записать зарезервированную полосу пропускания в элемент массива с индексом, равным MAX_GROUPS. Поскольку массив имеет размер MAX_GROUPS, происходит выход за границы.

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

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


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

Отсутствие сведений о публичном эксплойте не означает, что уязвимость не может быть использована. Механика ошибки (чтение за границами массива) является классической и может быть реализована в виде PoC (Proof of Concept) для демонстрации утечки информации или нарушения логики работы драйвера.

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


Специфичные индикаторы компрометации (IOC) для CVE-2026-80736 в официальных источниках не раскрыты. Для обнаружения атаки рекомендуется использовать общие точки контроля, которые не являются специфичными для данной уязвимости:

  • Аномальная активность Thunderbolt: Частые изменения конфигурации туннелей DisplayPort.
  • Ошибки в логах ядра: Сообщения о некорректных запросах к подсистеме Thunderbolt.
  • Аномальное потребление ресурсов: Необъяснимые изменения в использовании полосы пропускания Thunderbolt.

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


Для обнаружения эксплуатации уязвимости следует анализировать логи ядра и активность подсистемы Thunderbolt. Поскольку специфичные IOC отсутствуют, мониторинг должен быть направлен на выявление аномального поведения драйвера.

  • Мониторинг логов: Отслеживание сообщений dmesg и journalctl на наличие ошибок, связанных с thunderbolt или tb.c.
  • Контроль конфигурации: Проверка изменений в конфигурации туннелей DisplayPort через утилиты tbctl.
  • Аудит доступа: Анализ логов доступа к устройствам Thunderbolt для выявления подозрительных операций с привилегиями обычного пользователя.

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


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

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

Полученную версию ядра необходимо сверить с официальными релизами дистрибутива и стабильными ветками Linux Kernel. Исправление было включено в коммиты, связанные с d2ee4d47aacbd2ba456092eeec670dba35fde291. Убедитесь, что ваша система использует ядро, содержащее этот коммит или более поздние версии.

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


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

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

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


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

  • Отключение Thunderbolt: Если оборудование не используется, отключите его на уровне BIOS/UEFI или через утилиту tbctl.
  • Ограничение доступа: Ограничьте доступ к устройствам Thunderbolt для пользователей с низкими привилегиями через правила udev или apparmor.
  • Мониторинг: Усиленный мониторинг логов ядра на предмет аномальной активности подсистемы Thunderbolt.

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


Для проверки успешного применения исправления выполните следующие действия:

  • Проверка версии ядра: Убедитесь, что загруженное ядро соответствует версии, содержащей патч.
  • Анализ кода: Если возможно, проверьте исходный код драйвера thunderbolt в вашей системе на наличие изменения размера массива group_reserved[] до MAX_GROUPS + 1.
  • Функциональное тестирование: Проведите тестирование туннелирования DisplayPort для подтверждения корректной работы подсистемы после обновления.

Вывод​


CVE-2026-80736 представляет собой уязвимость в драйвере Thunderbolt ядра Linux, связанную с выходом за границы локального массива. Ошибка приводит к чтению неинициализированных данных и неточному расчёту полосы пропускания. Для администраторов критически важно обновить ядро до последней версии, содержащей исправление, и при необходимости ограничить доступ к устройствам Thunderbolt до завершения обновления.

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


  1. NVD — CVE-2026-80736
  2. FIRST EPSS — CVE-2026-80736
  3. thunderbolt: Fix bandwidth group reservation indexing - kernel/git/stable/linux.git - Linux kernel stable tree
  4. thunderbolt: Fix bandwidth group reservation indexing - kernel/git/stable/linux.git - Linux kernel stable tree
  5. thunderbolt: Fix bandwidth group reservation indexing - kernel/git/stable/linux.git - Linux kernel stable tree
  6. thunderbolt: Fix bandwidth group reservation indexing - kernel/git/stable/linux.git - Linux kernel stable tree
  7. CVEs — The Linux Kernel documentation

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


  • 06.09.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ