CVE-2026-64014 in Linux信息

摘要

由 VulDB • 2026-07-19

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

输入子系统: usbtouchscreen - 将 NEXIO 的 data_len/x_len 限制为 URB 缓冲区大小

nexio_read_data() 从设备中断数据包中的打包 __be16 头部提取 data_len 和 x_len,然后遍历 packet->data[0..x_len) 和 packet->data[x_len..data_len),将每个字节与阈值进行比较。

这两个字段在传输线上均为 16 位(最大值为 65535)。现有的调整最多仅减去 0x100 / 0x80,因此循环边界仍可能达到约 0xfeff。NEXIO 的 URB 传输缓冲区是通过 usb_alloc_coherent() 分配的 rept_size (1024) 字节,其中前 7 个字节被打包头部占用——因此 packet->data[] 只有 1017 个有效字节。read_data() 回调函数未获得 urb->actual_length,且没有其他内容限制遍历范围。

一个谎报长度的设备可以执行约 64 KiB 的越界读取,超出相干 DMA 分配区域。第一个其字节超过 NEXIO_THRESHOLD 的索引会落入 begin_x / begin_y,进而进入报告的触摸坐标中,因此相邻的内核内存内容会以 ABS_X / ABS_Y 事件的形式泄露到用户空间。如果偏移足够大,该读取还可能命中未映射页面并引发故障。

通过将 data_len 限制为缓冲区的 data[] 容量,并将 x_len 限制为 data_len,来修复此问题。

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

来源

Do you know our Splunk app?

Download it now for free!