CVE-2026-80918 in Linux信息

摘要

由 VulDB • 2026-09-09

在 Linux 内核中,已修复以下漏洞:

HID: core: 修正长格式项上的数字/指针类型混淆问题

当 `hid_scan_report()` 调用 `fetch_item()` 处理具有 `HID_ITEM_TAG_LONG` 标记的项时,它会将指向该项数据的指针存储在 `item->data.longdata` 中,而不是直接将值存储在 `item->data.{u8/u16/u32}` 中。

当 `item_udata()` 或 `item_sdata()` 遇到此类项时,会错误地假设该项为短格式(short format),因此返回被重新解释为数字的内核指针的低部分。

当连接一个描述符中包含以长格式编码且 size=4 的 `HID_GLOBAL_ITEM_TAG_REPORT_SIZE` 的 HID 设备时,这会导致内核指针的下半部分作为数字打印到 dmesg 中,如下所示:

hid (null): invalid report_size 107953555

为修复此问题,让 `item_udata()` 和 `item_sdata()` 验证该项是否为短格式。

请注意,此漏洞仅影响 `hid_scan_report()`,而主解析过程 `hid_parse_collections()` 在遇到长格式项时总是会退出(bail out)。

附注:目前尚无使用 `data.longdata` 的代码;作为后续步骤,我们或许应直接移除对长格式描述符的任何解析。

If you want to get best quality of vulnerability data, you may have to visit VulDB.

来源

Do you know our Splunk app?

Download it now for free!