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-устройств на критических системах до завершения обновления.
Официальные источники
- NVD — CVE-2026-80918
- FIRST EPSS — CVE-2026-80918
- HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree
- HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree
- HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree
- HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree
- HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree
- HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree
- HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree
- HID: core: fix number/pointer type confusion on long items - kernel/git/stable/linux.git - Linux kernel stable tree
История обновлений статьи
- 12.09.2026 — Опубликована первая версия материала.
