CVE-2023-53534CVE-2023-53534是Linux内核中drm/mediatek子系统中mtk_drm_crtc驱动模块存在的一个NULL指针解引用漏洞。该漏洞源于驱动代码在使用devm_kcalloc函数分配内存后,未对返回值进行有效性检查。devm_kcalloc是Linux内核提供的内存分配函数,当内存分配失败时会返回NULL指针。如果驱动程序未检查返回值而直接使用返回的指针,将导致内核空指针解引用,可能引发内核崩溃(kernel panic)或拒绝服务(DoS)。该漏洞的CVSS 3.1评分为5.5分,属于中危级别。攻击者需要本地低权限访问权限即可触发此漏洞,无需用户交互。漏洞影响范围包括多个Linux内核稳定版本,漏洞已在多个内核补丁中得到修复。该漏洞由Linux内核安全团队成员发现并报告,属于Linux内核图形显示子系统的安全问题,主要影响使用联发科(MediaTek)芯片平台的设备。
该漏洞的技术原理在于mtk_drm_crtc驱动中调用devm_kcalloc进行内存分配时缺少必要的NULL指针检查。具体而言,devm_kcalloc是devres框架下的内存分配接口,用于分配并初始化为零的内存数组。当系统内存不足或分配请求异常时,该函数可能返回NULL指针。原始代码在调用devm_kcalloc后直接将返回值赋给指针变量并立即使用,未进行任何有效性验证。一旦返回值为NULL,后续对该指针的解引用操作将触发内核空指针解引用异常,导致系统崩溃。从CVSS向量分析,攻击向量为本地(AV:L),攻击复杂度低(AC:L),所需权限为低权限(PR:L),无需用户交互(UI:N)。该漏洞的机密性影响为低(C:L),完整性影响为无(I:N),可用性影响为高(A:H),表明漏洞主要危害系统稳定性,可能造成拒绝服务攻击。修复方案是在devm_kcalloc调用后添加if (!ptr) return -ENOMEM;或类似的错误检查逻辑,确保在分配失败时安全退出。