CVE-2026-43111Linux内核中的HID: roccat驱动程序存在释放后重用漏洞。该漏洞发生在roccat_report_event函数处理设备事件时,由于未持有readers_lock锁,导致与roccat_release函数产生竞态条件。攻击者可利用并发操作触发UAF,导致系统崩溃或权限提升。
该漏洞的根本原因在于Linux内核drivers/hid/hid-roccat.c文件中roccat_report_event()函数的并发控制缺陷。该函数负责向用户空间分发HID设备事件,但在遍历device->readers链表时,未获取必要的readers_lock互斥锁进行同步。在多线程环境下,如果此时用户空间触发roccat_release()操作(例如关闭/dev/hidraw设备文件描述符),该函数会将reader节点从链表中移除,并立即调用kfree释放其占用的内核内存。由于report_event()仍在访问这块已失效的内存区域,导致严重的释放后重用(UAF)漏洞。攻击者可以通过精心设计的并发程序触发竞态条件,利用堆喷射技术控制被释放内存的内容,从而可能导致内核拒绝服务(DoS)、信息泄露,或在特定条件下实现本地权限提升(LPE)。