CVE-2025-71161CVE-2025-71161是Linux内核中dm-verity(设备映射器完整性验证)模块的一个中等严重度拒绝服务漏洞。该漏洞存在于dm-verity的前向纠错(FEC)功能中,由于递归前向纠错机制存在设计缺陷,攻击者可以通过构造特殊的磁盘镜像触发该漏洞,导致系统进程陷入不可中断的'D'状态,从而造成本地拒绝服务。dm-verity是Linux内核提供的块设备完整性验证机制,常用于Android系统启动验证和容器镜像完整性检查等场景。该漏洞的CVSS评分为5.5(中危),攻击向量为本地,攻击复杂度低,无需特殊权限即可触发。漏洞的修复方案为禁用递归前向纠错功能,以避免潜在的DoS攻击风险。
该漏洞的根本原因在于dm-verity的FEC(前向纠错)模块中fec_read_bufs函数的递归调用设计存在两个严重缺陷。第一,DoS风险:在fec_read_bufs函数中存在一个包含253次迭代的循环,每次迭代可能递归调用verity_hash_for_block函数。由于存在4层嵌套递归限制,理论上最大可能产生253^4(约40亿)次迭代操作。Red Hat QE团队实际构造了一个能够触发此限制的特殊磁盘镜像,导致udev-worker进程陷入不可中断的'D'状态(等待I/O)。第二,功能缺陷:fec_read_bufs函数将数据存储到fio->bufs变量,但fio的bufs缓冲区在递归调用中是共享的。当verity_hash_for_block触发递归纠错时,会覆盖部分填充的fio->bufs,导致数据损坏。攻击者只需具备本地访问权限,通过加载特制的dm-verity验证磁盘镜像即可触发该漏洞,无需特殊权限或用户交互。