CVE-2023-54207CVE-2023-54207是Linux内核中HID uclogic驱动的安全漏洞,CVSS评分7.8,属于高危级别。该漏洞源于HID uclogic驱动程序在分配input_dev名称的内存时,错误地引用了input设备而不是HID设备本身。当input_dev被注销时,会触发依赖于该名称的uevent事件,但在事件触发时,该名称已被devres管理机制释放,从而产生use-after-free条件。攻击者可通过触发设备注销并同时产生uevent来利用此漏洞,可能导致系统崩溃或执行任意代码。此漏洞需要本地低权限即可利用,无需用户交互。
在Linux内核的HID uclogic驱动程序中,input_dev名称的devm内存分配错误地引用了input设备对象而非HID设备对象。当调用input_unregister_device()注销input_dev时,会触发send_uevent()发送uevent消息,该消息依赖于input_dev->name字段的有效性。然而,由于devm分配使用的是input_dev的生命周期管理,当input_dev被注销并最终被devres释放后,名称字符串被提前释放。随后当uevent尝试访问该名称时,会发生use-after-free访问。修复方案使用devm_kasprintf()直接分配并格式化input_dev名称字符串,绑定到HID设备的生命周期而非input设备的生命周期,从而避免UAF条件。攻击者需要能够触发uclogic HID设备的注销操作,这在本地通过物理访问或特定驱动程序交互可能实现。