CVE-2026-31721
usb: gadget: f_hid: 将列表和自旋锁的初始化从 bind 移至 alloc
- 已发布
- 2026年5月1日
- 已更新
- 2026年5月11日
- 分配 CNA
- Linux
- 观察到的证据
- 2026年8月27日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H低 · 未来 30 天
- 百分位
- 2.7%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
在 Linux 内核中,以下漏洞已得到修复:usb: gadget: f_hid: 将列表和自旋锁的初始化从 bind 移至 alloc 此前存在一个问题,当您执行以下操作时会出现异常: - 设置并绑定一个 hid gadget - 打开 /dev/hidg0 - 将生成的 fd 用于 EPOLL_CTL_ADD - 解绑 UDC - 重新绑定 UDC - 将 fd 用于 EPOLL_CTL_DEL 当启用 CONFIG_DEBUG_LIST 时,会在 remove_wait_queue(经由 ep_remove_wait_queue)中报告 list_del 损坏。经过一番调试,我发现问题出在 f_hid 通过 poll_wait 注册的队列上。这些队列是在 hidg_bind 内部使用 init_waitqueue_head 初始化的。因此,实际上 bind 函数在队列中仍有条目时对其进行了重新初始化。 解决方案是将初始化从 hidg_bind 移至 hidg_alloc,以将其生命周期延长至函数实例的生命周期。此外,我还发现了 bind 函数中其他一些可能存在问题 init 调用,并一并进行了移动。
来源
1三个已发布 f_hid 修复(含 CVE-2026-31721、CVE-2026-31606)对已停止维护的 Linux 4.14.190 Android 厂商内核的回移,并附设备端验证记录。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。