CVE-2026-43231Linux内核中的radio-keene驱动程序存在一个内存泄露漏洞。该漏洞源于`usb_keene_probe`函数的错误处理路径缺陷。在初始化v4l2控制处理器并添加控件后,若后续的设备注册操作失败,程序未能正确释放已分配的内存资源。本地攻击者可利用此漏洞,通过特定的操作触发该错误路径,导致内核内存持续泄露,长期运行可能耗尽系统内存,进而造成拒绝服务。
该漏洞位于Linux内核的`drivers/media/radio/radio-keene.c`驱动文件中。在`usb_keene_probe`函数执行期间,系统首先调用`v4l2_ctrl_handler_init`分配并初始化控制处理器,随后添加必要的控件。然而,在执行`v4l2_device_register`或`video_register_device`进行设备注册时,如果发生错误(例如内存不足或设备冲突),代码将跳转至`err_v4l2`标签进行清理。在此错误路径中,原代码仅调用了`v4l2_device_unregister`,却遗漏了至关重要的`v4l2_ctrl_handler_free`调用。这导致先前分配的控制处理器及其关联的内核内存对象永远不会被释放。攻击者需具备本地低权限,可通过模拟设备故障或利用特定硬件条件反复触发该错误路径,导致内核内存泄露累积,最终引发系统崩溃或服务不可用。