CVE-2025-71106CVE-2025-71106是Linux内核中的一个逻辑错误漏洞,位于文件系统和电源管理(PM)子系统交互的代码中。该漏洞源于filesystems_freeze_callback()函数中freeze_all_ptr检查逻辑被反转,导致系统行为与预期相反。具体而言,当filesystem_freeze_enabled设置为false时,本应禁用文件系统冻结功能,但实际却会导致所有文件系统被冻结。这会触发__set_task_frozen()中的WARN_ON_ONCE()警告,表明系统尝试冻结尚未准备好进行冻结操作的文件系统。该漏洞为本地低权限攻击者提供了拒绝服务(DoS)攻击的可能性,虽然不影响系统机密性和完整性,但会对系统可用性造成严重影响。攻击者无需特殊权限或用户交互即可触发此漏洞。
该漏洞的技术根源在于Linux内核源码中filesystems_freeze_callback()函数的逻辑错误。在引入commit a3f8f8662771("power: always freeze efivarfs")时,添加了freeze_all_ptr条件检查,但该检查的逻辑被反转。正确的逻辑应该是:当filesystem_freeze_enabled为true时启用文件系统冻结,为false时禁用冻结。但由于检查逻辑反转,当filesystem_freeze_enabled为false时,反而会执行文件系统冻结操作,导致所有文件系统被意外冻结。这会引发以下问题:1)触发__set_task_frozen()中的WARN_ON_ONCE()断言;2)可能导致未准备好冻结的文件系统被强制冻结;3)造成系统可用性下降,可能导致应用程序崩溃或系统不稳定。修复方法是在相关检查处添加逻辑非(!)操作符以纠正逻辑反转。