CVE-2026-43236Linux内核的DRM子系统中的atmel-hlcdc驱动程序存在一个释放后使用(UAF)漏洞。该漏洞源于`atmel_hlcdc_plane_atomic_duplicate_state`函数在复制平面状态时未正确克隆基础`drm_plane_state`结构,导致`commit`指针悬空。当在fbdev等客户端连接时进行设备节点的关闭和重开操作,会触发该漏洞,可能导致内核崩溃或权限提升。
该漏洞发生在Linux内核的图形驱动部分。Atmel HLCDC驱动在实现`atomic_duplicate_state`回调时存在缺陷。具体来说,它手动复制了自定义的`atmel_hlcdc_plane`状态,但未能调用`__drm_atomic_helper_duplicate_plane_state`来初始化通用的`drm_plane_state`。这导致新状态对象中的`commit`字段仍然指向已经被释放的旧提交对象的内存地址。当系统执行后续的原子提交操作(`drm_atomic_commit`)时,会尝试访问这个已经无效的指针。由于该内存区域可能已被内核分配器回收并用于其他对象(如日志中的kmalloc-64),访问会导致内核写入错误的内存位置,触发“Poison overwritten”错误,进而导致内核恐慌。攻击者可利用此漏洞造成拒绝服务或潜在的内核代码执行。