CVE-2025-71083CVE-2025-71083是Linux内核中的一个中等严重性安全漏洞,位于Direct Rendering Manager (DRM)的TTM (Translation Table Map)内存管理子系统中。该漏洞源于当Buffer Object(缓冲区对象,简称BO)被驱逐(evicted)后,可能不再与任何资源(resource)关联。当系统的devcoredump机制尝试读取所有BO的内容以进行崩溃转储时,如果未正确处理这种情况,将导致NULL指针解引用错误。此漏洞可能会引发系统不稳定,造成内核崩溃(kernel panic),但不会直接导致权限提升或远程代码执行。攻击者需要具有本地访问权限,并通过特定的操作序列触发BO的驱逐,然后利用devcoredump功能触发漏洞。该漏洞的CVSS评分为5.5,属于中等严重性级别,主要影响系统的可用性。
在Linux内核的drm/ttm内存管理框架中,Buffer Object(BO)是用于管理图形内存的基本数据结构。正常情况下,每个BO都会关联一个资源对象(resource),用于跟踪其在内存中的位置和状态。然而,当系统内存压力增大或需要释放图形内存时,BO可能被驱逐(evicted),即将其数据从GPU内存移动到系统内存或磁盘,此时BO与原始资源的关联可能被解除。
漏洞产生的根本原因在于devcoredump功能的实现假设所有BO都必然关联有效的资源指针。当遍历所有BO进行内容转储时,如果遇到已被驱逐且不再关联资源的BO,代码将尝试访问NULL指针,导致空指针解引用。这会触发内核的oops(内核错误),严重情况下会导致系统崩溃。
修复方案通过在访问资源前检查其有效性来处理这种情况:当resource为NULL时,返回-ENODATA错误码而不是继续访问NULL指针,从而避免崩溃。开发者需要在访问ttm_resource_manager_for_each()遍历的资源之前添加NULL检查逻辑。攻击者需要具备本地访问权限(AV:L)和低权限(PR:L),无需用户交互即可触发此漏洞。