CVE-2026-31599Linux内核中的vidtv驱动程序存在一个空指针解引用漏洞。该漏洞源于`vidtv_psi_pmt_stream_init`函数在内存分配失败时可能返回NULL,但调用方`vidtv_channel_pmt_match_sections`未对此进行检查。当后续代码尝试访问该空指针时,会导致系统发生一般保护性错误,从而引发内核崩溃或拒绝服务。该漏洞需要本地低权限用户触发,且无需用户交互。
该漏洞位于Linux内核的`drivers/media/test-drivers/vidtv/vidtv_channel.c`文件中。具体来说,`vidtv_psi_pmt_stream_init`函数负责初始化PMT流结构体,并在内存分配失败时返回NULL。然而,调用该函数的`vidtv_channel_pmt_match_sections`函数缺少必要的返回值检查。在代码执行路径中,如果`vidtv_psi_pmt_stream_init`返回NULL(即`tail`为NULL),程序继续执行`vidtv_psi_desc_assign(&tail->descriptor, desc)`。由于`tail`为NULL,访问其成员`descriptor`会导致无效的内存访问(NULL pointer dereference)。根据KASAN报告,这会触发一般保护故障。攻击者拥有本地低权限即可触发此逻辑,通过占用内存或特定操作导致分配失败,进而导致系统崩溃,影响可用性。