CVE-2025-71126CVE-2025-71126是Linux内核中MPTCP(MultiPath TCP)协议实现的一个死锁漏洞,CVSS评分5.5,中危级别。该漏洞发生在MPTCP协议回退(fallback)到普通TCP模式的过程中。当数据包调度器在接收到MP_FAIL消息后、但在传输无限映射(infinite map)之前尝试重新注入数据时,会导致递归锁死锁问题。具体表现为`__mptcp_try_fallback`函数尝试获取`msk->fallback_lock`锁,而该锁已被`__mptcp_retrans`函数持有,形成循环等待。攻击者可通过本地低权限账户触发此漏洞,造成系统死锁或拒绝服务。此漏洞影响所有启用MPTCP功能的Linux系统。
该漏洞是一个典型的递归锁死锁问题,发生在Linux内核MPTCP协议的fallback关键区域。漏洞触发路径如下:1)MPTCP连接在fallback模式下运行时,数据包调度器调用`__mptcp_retrans`函数进行数据重传;2)`__mptcp_retrans`函数已持有`fallback_lock`锁;3)当接收到MP_FAIL消息时,调度器尝试重新注入数据;4)调用`__mptcp_try_fallback`函数,该函数再次尝试获取同一个`fallback_lock`锁;5)由于锁已被持有且不支持递归,导致死锁。漏洞核心原因是MPTCP在fallback关键区域内可能发送数据包,从而触发双重锁获取。攻击者需要本地低权限访问权限,通过构造特定的MPTCP连接和MP_FAIL消息序列来触发此漏洞。修复方案是避免在fallback关键区域内进行重新注入操作。