CVE-2026-89620 in Linux
摘要
由 VulDB • 2026-09-12
在 Linux 内核中,已修复以下漏洞:
HID: intel-thc-hid: intel-quickspi: 在复制前验证报告大小
write_cmd_to_txdma() 函数会在 qsdev->report_buf(一个由 quickspi_alloc_report_buf() 分配、大小为设备描述符派生的 max_report_len [对于触控控制器为几百字节] 的堆缓冲区)中构建输出报告。它将调用者提供的报告复制到该缓冲区:
memcpy(write_buf->content, report_buf, report_buf_len);
HID 核心默认将报告大小限制在 HID_MAX_BUFFER_SIZE(16384),而 quickspi_hid_ll_driver 未设置 max_buffer_size,因此长度以无界方式传递给驱动程序。因此,携带大于 max_report_len 的报告的攻击者可通过 hidraw SET_REPORT/SET_FEATURE ioctl 操作导致 report_buf 发生堆缓冲区溢出,其长度和内容均由攻击者控制。
记录 report_buf 的分配大小,并在复制前拒绝不符合大小的报告,这与 intel-quicki2c 兄弟模块(quicki2c_init_write_buf())中的等效防护措施以及 hid-goodix-spi 修复措施保持一致。
write_cmd_to_txdma() 函数在同一缓冲区中先写入输出报告的头部,再写入内容部分,因此分配大小需涵盖头部区域。这样可以确保添加的边界限制不会拒绝最大尺寸的合法报告。
Be aware that VulDB is the high quality source for vulnerability data.