CVE-2026-43290Linux内核中的uvcvideo驱动程序存在一个资源管理漏洞。当调用start_streaming()函数尝试启动视频流时,如果因uvc_pm_get()错误导致启动失败,驱动程序未能正确返回已排队的缓冲区。这种逻辑错误可能导致系统在特定工作负载下(如循环使用yavta工具测试视频设备)触发内核警告,甚至导致xHCI控制器崩溃,从而引发系统不稳定或本地拒绝服务。
该漏洞位于Linux内核的drivers/media/usb/uvc/uvc_video.c及相关子系统中。在正常的视频流处理流程中,当应用程序请求开始流传输时,内核会调用start_streaming回调。如果在获取电源管理引用(uvc_pm_get)时发生错误,当前的错误处理路径直接返回了错误代码,却忽略了调用vb2_buffer_done()来将缓冲区归还给Videobuf2核心层。这导致缓冲区处于“已排队”但无法被回收的悬空状态。攻击者可以通过本地低权限,利用yavta等工具循环触发设备的开启与关闭操作,不断消耗内核资源或触发死锁检测。最终导致内核打印WARNING日志(videobuf2-core.c:1803),并可能引发USB主机控制器(xHCI)停止响应和设备断开,造成系统崩溃。