CVE-2026-80918 в Linux Kernel: утечка части адреса ядра через HID

CVE: CVE-2026-80918
Продукт: Linux Kernel
Дата публикации: 09.09.2026
Критичность: не определена
CVSS: нет данных
EPSS: 0,18%; процентиль 7,83%
CISA KEV: нет подтверждения в каталоге CISA KEV

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


Ошибка в подсистеме HID ядра Linux приводит к выводу части адреса ядра в системный журнал при подключении устройства с некорректным дескриптором. Механизм базируется на смешении типов данных при парсинге, что снижает эффективность ASLR, но не дает прямого доступа к памяти.

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


Риск заключается в некорректной обработке типов данных при парсинге HID-дескрипторов, что позволяет атакующему получить часть адреса ядра. Это снижает эффективность защиты от ASLR, но не дает прямого доступа к памяти.

  • Тип ошибки: Смешение типов (type confusion) при обработке данных HID.
  • CVSS: Официальная оценка NVD отсутствует.
  • Условия атаки: Требуется физический доступ для подключения HID-устройства.
  • Эксплуатация: Подтверждена только в виде утечки данных в dmesg.
  • EPSS: 0,18% (0.00182), что указывает на низкую вероятность эксплуатации.

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


Затронуты версии ядра Linux, содержащие функцию hid_scan_report() без проверки формата данных в item_udata() и item_sdata(). Официальные списки версий от дистрибутивов в предоставленных данных отсутствуют.

  • Компонент: Подсистема HID (drivers/hid/hid-core.c).
  • Функции: item_udata(), item_sdata(), hid_scan_report().
  • Условие: Наличие поддержки HID и возможность подключения внешнего устройства.

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


Причина ошибки заключается в некорректном допущении о формате данных в функции fetch_item(). При обработке элементов с тегом HID_ITEM_TAG_LONG в поле item->data.longdata сохраняется указатель, а не числовое значение.

Функции item_udata() и item_sdata() не проверяют формат элемента и интерпретируют указатель как число. В результате нижняя часть адреса ядра возвращается как значение параметра report_size.

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


Атакующий подключает HID-устройство, дескриптор которого содержит элемент HID_GLOBAL_ITEM_TAG_REPORT_SIZE в формате long с размером 4 байта. При инициализации драйвера вызывается hid_scan_report(), который обрабатывает этот элемент.

Из-за отсутствия проверки формата функция item_udata() возвращает часть адреса ядра. Это значение попадает в системный журнал через механизм логирования ошибок драйвера HID.

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


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

  • Физический доступ к системе для подключения HID-устройства.
  • Наличие в ядре уязвимой версии подсистемы HID.
  • Возможность записи в системный журнал (dmesg) для атакующего или наблюдателя.

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


Сценарий атаки начинается с подключения специально подготовленного HID-устройства. Дескриптор устройства содержит некорректно закодированный параметр report_size.

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

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


Публичный эксплойт в виде готового кода или PoC в предоставленных источниках не указан. Подтверждено только наличие исправления в ядре и описание механики утечки данных.

Отсутствие сведений о PoC не означает, что эксплойт не существует, но подтвержденная эксплуатация ограничивается утечкой данных в журнал.

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


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

  • Необычные сообщения в dmesg, связанные с HID-устройствами.
  • Подключение неизвестных HID-устройств к системе.
  • Аномальная активность в журнале ядра при подключении периферии.

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


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

Также рекомендуется контролировать подключение новых HID-устройств и сопоставлять их с известными легитимными периферийными устройствами в организации.

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


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

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

Сопоставьте полученную версию с официальными списками обновлений вашего дистрибутива Linux. Если пакет ядра обновлялся, проверьте наличие коммита 28abce951343fcec26e397610868efa4e1395c3f в истории изменений.

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


Основным методом устранения уязвимости является обновление ядра Linux до версии, содержащей исправление. Патч добавляет проверку формата данных в функциях item_udata() и item_sdata().

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

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


Пока обновление ядра не установлено, можно снизить риск эксплуатации, ограничив доступ к HID-устройствам. Это не устраняет уязвимость, но затрудняет атаку.

  • Отключите неиспользуемые USB-порты на критических серверах.
  • Ограничьте подключение HID-устройств политикой безопасности.
  • Мониторьте dmesg на наличие подозрительных сообщений об ошибках HID.

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


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

Подключите тестовое HID-устройство с некорректным дескриптором (если есть) и проверьте, что в dmesg не появляется сообщение invalid report_size с числовым значением, похожим на адрес ядра.

Вывод​


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

Администраторам рекомендуется обновить ядро до актуальной версии и ограничить подключение HID-устройств на критических системах до завершения обновления.

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


  1. NVD — CVE-2026-80918
  2. FIRST EPSS — CVE-2026-80918
  3. HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree
  4. HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree
  5. HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree
  6. HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree
  7. HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree
  8. HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree
  9. HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree
  10. HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree

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


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