CVE-2025-68823CVE-2025-68823是Linux内核中ublk(userspace block device)驱动的死锁漏洞。当进程(如udev)打开ublk块设备读取分区表时,由于内核互斥锁的不当使用,导致同一任务在持有锁的情况下等待该锁,形成死锁。该漏洞影响内核的块设备子系统,可导致系统资源耗尽和拒绝服务。攻击者需要本地访问权限,且需要低权限即可触发漏洞。此漏洞的CVSS评分为5.5,属于中等严重级别,对系统可用性造成较高影响。
漏洞发生在Linux内核的ublk驱动中,具体为读取分区表时的竞态条件导致的死锁。攻击链如下:1) 进程通过bdev_open()打开ublk块设备,系统获取disk->open_mutex互斥锁;2) 进程向ublk后端发起读I/O请求以读取分区表;3) 在__ublk_complete_rq()中执行blk_update_request()或blk_mq_end_request(),触发bio->bi_end_io()回调;4) 如果此时触发fput()关闭ublk块设备的文件描述符,相关工作会被延迟到当前任务的task work队列;5) 这会从同一上下文调用blkdev_release();6) blkdev_release()尝试再次获取disk->open_mutex;7) 形成死锁:同一任务等待已持有的互斥锁。修复方案是在执行blk_update_request()和blk_mq_end_request()时禁用底半部(bottom halves),使blkdev_release()能在内核工作队列上下文而非当前任务上下文中运行,从而打破死锁。