CVE-2026-43105Linux内核drm/vc4驱动程序存在一处内存泄漏漏洞。在处理GPU挂起状态时,代码通过kzalloc分配了BO数组内存,但在后续清理函数vc4_free_hang_state中遗漏了释放操作。本地低权限攻击者可通过反复触发该状态保存流程,导致内核内存持续耗尽,最终造成系统拒绝服务。
该漏洞技术细节涉及Linux内核图形驱动堆内存管理错误。在drivers/gpu/drm/vc4/vc4_gem.c模块中,当GPU发生硬件挂起时,内核会调用vc4_save_hang_state以记录现场信息。该函数使用kzalloc为buffer object(BO)数组分配堆内存,但在随后的销毁流程vc4_free_hang_state中,开发人员遗漏了对该BO数组的kfree调用,导致每次触发挂起状态保存都会泄漏一块内存。攻击者可利用本地低权限账户,通过发送恶意构造的图形指令或密集型渲染任务诱发GPU挂起。由于泄漏发生在内核空间,且攻击向量为本地,长期反复利用将导致内核内存耗尽,触发OOM Killer杀掉关键进程或导致系统完全死机,构成拒绝服务风险。