CVE-2025-71088CVE-2025-71088是Linux内核中MPTCP(MultiPath TCP)协议实现的一个竞态条件漏洞。该漏洞位于net/mptcp/subflow.c文件中,当TCP子流在转换到TCP_FIN1状态后处理simult-connect syn-ack包时,会绕过MPTCP的fallback检查机制。攻击者可通过触发竞态条件,使msk socket(MPTCP socket)进入不一致状态,最终导致后续传入数据触发内核警告(WARNING: CPU),可能造成本地拒绝服务。由于CVSS评分5.5且为本地攻击向量,需要低权限用户即可触发,对系统可用性影响较高。
该漏洞源于MPTCP协议实现中的状态管理问题。在正常的MPTCP连接建立过程中,当双方同时发起连接(simult-connect)时,系统需要进行fallback检查以确保协议状态一致性。然而,由于sk_state_change()回调在* -> FIN_WAIT1状态转换时不会被调用,TCP子流可以在FIN_WAIT1状态下处理syn-ack包,导致绕过fallback检查。具体问题发生在net/mptcp/subflow.c:1515的subflow_data_ready函数中。修复方案是将simult-fallback检查提前到syn-ack生成时执行,这是最早可能进行检查的阶段。该漏洞涉及多个补丁依赖:[2]本应修复此问题,[1]是必需的依赖项。攻击者可通过构造特定的并发TCP连接场景,触发状态转换竞态条件,使内核进入不一致状态并触发警告信息。