CVE-2026-43162Linux内核中的tegra-video驱动模块存在内存泄漏漏洞。该漏洞源于__tegra_channel_try_format函数的错误处理路径缺陷,当v4l2_subdev_call调用失败时,未正确释放由__v4l2_subdev_state_alloc分配的sd_state对象。本地低权限攻击者可通过触发特定错误路径利用此漏洞,导致系统内存持续耗尽,进而影响系统可用性。
该漏洞位于Linux内核的媒体子系统,具体涉及Tegra视频驱动(drivers/media/platform/tegra/video/vi.c)中的__tegra_channel_try_format()函数。该函数主要负责尝试配置视频通道的格式。在函数执行过程中,代码首先调用__v4l2_subdev_state_alloc()分配了一个名为sd_state的状态对象,该对象必须在不再使用时通过__v4l2_subdev_state_free()释放以避免内存泄漏。
然而,代码逻辑存在缺陷:在调用v4l2_subdev_call()进行子设备配置时,如果该调用失败,函数存在两条错误处理路径直接执行return语句返回。在这两条路径中,程序跳过了释放sd_state对象的步骤,导致分配的内存未被回收。
攻击者需拥有本地低权限账号(PR:L),通过恶意构造的视频格式设置请求,反复触发v4l2_subdev_call()失败的错误路径。由于每次失败都会泄漏一定量的内核内存,长期运行可导致系统内核内存耗尽,从而造成系统拒绝服务(DoS),影响系统可用性(A:H)。