CVE-2026-43302Linux内核中的V3D驱动程序存在一个漏洞,主要涉及DMA(直接内存访问)段大小的设置问题。当启用CONFIG_DMA_API_DEBUG配置时,内核会检测到V3D驱动尝试映射的散列-聚集(sg)段长度超过了设备声称的支持范围。由于未设置max_seg_size,内核默认为64KB,而V3D实际使用的段长度(如8290304字节)远超此限制。这导致内核触发调试警告并可能导致系统崩溃,从而造成拒绝服务。
该漏洞源于Linux内核DRM(直接渲染管理)子系统中V3D驱动程序的初始化逻辑缺失。在DMA操作中,设备驱动需要明确告知DMA子系统其支持的最大段大小。V3D驱动未设置此参数,导致系统默认使用64KB的阈值。然而,V3D硬件在处理渲染缓冲区时,往往需要处理大块内存(例如日志中显示的8MB左右的段)。当内核通过dma_map_sgtable接口将这些大段内存映射给设备时,DMA调试机制会检测到长度不匹配。攻击者利用此漏洞需要本地访问权限并触发V3D渲染操作,从而导致系统不稳定或崩溃。