CVE-2025-68223CVE-2025-68223是Linux内核中drm/radeon驱动程序的一个中等严重性漏洞,CVSS评分5.5。该漏洞源于radeon_fence_process函数在检查fence信号状态时可能导致的自我死锁问题。在Linux内核的DMA-fence机制中,dma-fence_ops::signaled回调函数可能在fence锁状态未知的情况下被调用。对于radeon驱动,fence锁同时也是等待队列的锁,当signaled()函数尝试在等待队列上取得进展时,可能会造成自死锁。此漏洞影响本地攻击场景,需要低权限认证但无需用户交互,攻击成功可能导致系统可用性下降(高影响)。
该漏洞的技术根源在于Linux内核的fence机制与radeon驱动锁设计的结合。dma-fence是内核用于同步GPU操作的机制,signaled回调用于检查fence是否已完成。在正常流程中,检查fence状态时应避免修改锁状态,但radeon驱动的实现中,radeon_fence_process函数会在signaled回调中被调用,该函数需要获取fence锁(也是等待队列锁)来推进等待队列。当调用链形成:signaled() -> radeon_fence_process() -> 获取同一锁 时,就会发生死锁。攻击者需要构造特定的GPU操作序列,触发fence检查路径,同时保持锁的不一致状态。本地低权限用户可通过持续提交GPU任务并监控fence状态来触发此条件,最终导致系统进程阻塞。修复方案为移除signaled回调中的队列推进逻辑,因为错误返回false(未信号)是可接受的,不会造成数据损坏。