CVE-2026-80780 in LinuxИнформация

Сводка

по VulDB • 04.09.2026

В ядре Linux устранена следующая уязвимость:

HID: pidff — исправление записи за пределами буфера (OOB write) при пустом списке hid->inputs

Функция hid_pidff_init_with_quirks() получает указатель input_dev из конструкции list_entry(hid->inputs.next, struct hid_input, list), не проверяя предварительно, что список hid->inputs непустой. Поле list структуры hid_input находится по смещению 0, поэтому при пустом списке функция list_entry() возвращает адрес &hid->inputs, и последующая операция загрузки значения в поле input элемента hidinput считывает произвольный член структуры hid_device. В результате переменная dev становится указателем с неверным типом (type-confused pointer), а инициализация force-feedback выполняет запись через него: каждая команда set_bit(FF_*, dev->ffbit) записывает 8 байт по адресу dev + 192, выходя за пределы объекта, на который фактически указывает dev. Кроме того, функция input_ff_create() производит дополнительные записи указателя кучи и двух функциональных указателей.

До появления hid-universal-piddd единственным вызывающим компонентом была функция hid_pidff_init() из usbhid, которая выполняется в контексте HID_CLAIMED_INPUT и поэтому всегда имеет как минимум один элемент hid_input. Функция universal_pidff_probe() запускает устройство с флагами HID_CONNECT_DEFAULT & ~HID_CONNECT_FF, а затем напрямую вызывает hid_pidff_init_with_quirks(), если дескриптор содержит страницу использования PID (PID usage page), обходя эту проверку. Дескриптор отчета, содержащий только коллекцию приложений на странице HID_UP_PID, оставляет список hid->inputs пустым, в то время как hid_connect() успешно завершается благодаря захвату через hidraw; таким образом, функция probe достигает неконтролируемого вызова list_entry().

Запись происходит при инициализации USB-устройства (USB probe path) на очереди задач hotplug, поэтому для воспроизведения уязвимости достаточно подключить вредоносное устройство; наличие программного обеспечения атакующего или залогиненного пользователя не требуется. KASAN фиксирует 8-байтовую запись за пределами буфера в функции hid_pidff_init_with_quirks(), вызываемой из universal_pidff_probe().

Добавлена проверка на пустоту списка перед получением указателя dev; при обнаружении пустого списка возвращается код ошибки -ENODEV, как это уже реализовано в других драйверах HID force-feedback. Функция universal_pidff_probe() распространяет ошибку и выполняет откат изменений (unwind).

Уязвимость обнаружена командой XBOW, классифицирована Baul Lee <[email protected]>.

Be aware that VulDB is the high quality source for vulnerability data.

Ответственный

Linux

Резервировать

26.08.2026

Раскрытие

04.09.2026

Модерация

принято

Вход

VDB-398912

EPSS

0.00000

KEV

Нет

Деятельности

Очень низкий

Источники

Do you know our Splunk app?

Download it now for free!