CVE-2025-71117CVE-2025-71117是Linux内核块设备子系统中的一个中等严重性漏洞。该漏洞源于sysfs存储回调函数中对请求队列的冻结操作,当与dm-multipath驱动和queue_if_no_path选项结合使用时,可能导致系统死锁。具体而言,在multipathd任务尝试设置设备映射器表限制并持有互斥锁的同时,udev-worker任务可能在sysfs属性存储回调中尝试冻结请求队列,从而形成循环等待条件。此外,频繁的请求队列冻结操作会显著拖慢系统启动速度,因为sysfs属性的设置通常是同步进行的。该漏洞影响io_poll_delay、io_timeout、nomerges、read_ahead_kb和rq_affinity等多个sysfs属性。攻击者可通过本地低权限账户触发此漏洞,造成系统可用性下降,表现为系统冻结或启动缓慢。CVSS 3.1评分为5.5(中等),主要影响可用性。
漏洞根源在于Linux内核块子系统的sysfs store回调函数中调用了blk_mq_freeze_queue()和blk_mq_unfreeze_queue()来冻结请求队列。当用户空间程序(如udev)通过sysfs写入特定属性时,会触发queue_attr_store函数,进而调用相应的存储回调。以read_ahead_kb为例,queue_ra_store函数会调用blk_mq_freeze_queue_wait进行队列冻结。然而,如果此时multipathd守护进程正在执行dm_table_set_restrictions操作(持有相关互斥锁),系统将陷入死锁:multipathd等待I/O完成,而udev-worker等待队列冻结完成。攻击者可通过编写程序循环写入受影响的sysfs属性(如echo值>/sys/block/*/queue/read_ahead_kb)来触发此条件。该漏洞属于本地拒绝服务类型,攻击复杂度低,无需特殊用户交互,但需要低权限账户。修复方案为移除非必要回调中的队列冻结操作,并添加__data_racy注解以抑制KCSAN数据竞争警告。