CVE-2026-98432 漏洞分析与修复指南
摘要
CVE-2026-98432 是 Linux 内核 IPv4 TCP 连接处理路径中的一个高危释放后重用(Use-After-Free)漏洞,CVSS 3.1 评分为 9.8(严重)。该漏洞源于 TCP 握手过程中 IP 选项内存所有权的转移机制缺陷,远程未认证攻击者可通过精心构造并重传的 SYN 报文触发竞态条件,导致内核读取已释放内存。Anthropic 已演示了在启用 MPTCP 监听器的服务器上实现远程 root 代码执行的完整利用链。漏洞自 Linux 4.4 引入,影响几乎所有主流发行版的内核版本。
一、漏洞基本信息
| 项目 | 内容 |
|---|---|
| CVE 编号 | CVE-2026-98432 |
| 漏洞类型 | 释放后重用(CWE-416) |
| CVSS 3.1 | 9.8 Critical(Linux CNA 评定) |
| 攻击向量 | 网络远程,无需认证,无需用户交互 |
| 引入版本 | Linux 4.4(commit 079096f103fa) |
| 上游修复 | Eric Dumazet 编写,commit e3f33b0a1d89 |
各发行版对严重性的评定存在分歧:Red Hat 公开页面曾显示 Moderate(5.9),但其机器可读通告后续更新为 Important(8.1),理由是对竞态窗口可利用性的评估不同。Linux 内核 CNA 维持 9.8 评分,认为攻击者能够同时诱导竞态的两端,攻击复杂度应评为“低”。
二、技术原理分析
2.1 正常路径下的 IP 选项处理
当携带 IPv4 选项(如 Record Route 或 Timestamp)的 TCP SYN 报文到达时,内核将该选项数据保存在请求套接字(request socket)的 ireq->ireq_opt 中,以便在 SYN-ACK 响应中回显这些选项。当三次握手完成、子套接字创建时,tcp_v4_syn_recv_sock() 直接转移所有权,将 ireq->ireq_opt 赋值给 newinet->inet_opt,而不进行复制。
2.2 竞态条件的形成
漏洞的关键在于:请求套接字在 commit 079096f103fa 之后不再受监听锁保护,可以独立于监听套接字被处理。具体竞态窗口如下:
-
CPU A 完成握手,子套接字获得
inet_opt的所有权。若此时子套接字被关闭,inet_sock_destruct()使用普通的kfree()立即释放该内存。 -
CPU B 与此同时正在处理同一请求套接字的重传 SYN,
tcp_check_req()→tcp_v4_send_synack()→inet_csk_route_req()路径在 RCU 读锁下访问ireq->ireq_opt,随后ip_options_build()会两次读取opt->optlen。
由于 CPU A 的释放不等待 CPU B 的 RCU 读临界区结束,CPU B 可能在 ip_options_build() 中读取已释放的内存,形成 UAF。
2.3 迁移路径的类似问题
当启用 net.ipv4.tcp_migrate_req 或使用 BPF_SK_REUSEPORT_SELECT_OR_MIGRATE 程序时,inet_reqsk_clone() 克隆请求套接字,新旧套接字共享同一个 ireq_opt。reqsk_migrate_reset() 清除旧套接字的指针后,若另一个 CPU 仍持有旧请求套接字的引用并使用其选项,克隆被释放时 tcp_v4_reqsk_destructor() 同样使用普通 kfree(),引发另一条 UAF 路径。
2.4 IPv6 不受影响的原因
tcp_v6_syn_recv_sock() 对选项执行复制而非所有权转移,因此主路径的竞态在 IPv6 上不存在。但 tcp_v6_reqsk_destructor() 存在与迁移相关的类似问题(仅 CALIPSO 选项可触发),上游已计划单独修补。
三、利用链与影响
3.1 Anthropic 演示的利用方式
2026 年 10 月 27 日,Anthropic 披露其内部 AI 模型开发了可工作的利用程序,针对运行 MPTCP 监听器的 Linux 服务器,在约 53 分钟内实现从初始数据包到 root 命令执行。利用分为两个阶段:
第一阶段:绕过 KASLR(约 48 分钟)
-
反复触发竞态,使内核在 SYN-ACK 响应中回显超出预期范围的字节,泄露内核指针。
-
攻击者赢得竞态后可获得内核内存地址,突破 KASLR。
第二阶段:劫持控制流(约 5 分钟)
-
再次触发竞态实现内存破坏,覆盖内核回调指针为攻击者控制的数据地址。
-
内核调用被篡改的指针时,以 root 权限执行任意命令。
输掉竞态仅导致 TCP 握手失败,不会使服务器崩溃,攻击者可无限重试。
3.2 攻击面说明
漏洞代码位于常规 IPv4 TCP 连接建立路径,任何接受 IPv4 TCP 连接的监听端口均可被触达,不限于 MPTCP。MPTCP 之所以在演示中出现,是因为该特性使得某些配置下利用更加可行,但禁用 MPTCP 不能消除漏洞本身的风险。IPv6 连接不受主路径影响。
四、影响范围与发行版状态(截至 2026 年 10 月底)
4.1 上游修复版本
| 内核分支 | 修复版本 |
|---|---|
| 5.10 | 5.10.272 |
| 5.15 | 5.15.223 |
| 6.1 | 6.1.190 |
| 6.6 | 6.6.159 |
| 6.12 | 6.12.113 |
| 6.18 | 6.18.56 |
| 7.2 | 7.2.10 |
| 7.3 | 7.3-rc7 |
4.2 主要发行版补丁状态
| 发行版 | 状态(10 月 29–30 日) |
|---|---|
| Debian 12/13 | 已修复(6.1.190-1 / 6.12.113-1) |
| Oracle Linux 7–10 | 已修复(UEK 内核) |
| Amazon Linux 2023 | 部分内核分支已修复(6.12/6.18) |
| AlmaLinux 8/9/10 | 测试仓库已提供回移补丁 |
| SUSE / openSUSE | 部分版本已修复,SLES 15 SP7 仍在处理中 |
| Ubuntu 20.04–26.10 | 修复进行中,尚未发布 |
| RHEL 8/9/10 | 受影响,修复推迟至未来更新 |
注意:Ubuntu 跟踪页面上的“work in progress”版本号(如 5.15.0-203.213)是开发中的目标版本,不是已发布的修复版本,不应作为安全基线使用。
五、修复方案
5.1 上游修复逻辑
修复 commit e3f33b0a1d89(“ipv4: free inet_opt and ireq_opt after an RCU grace period”)的核心改动是将两处释放操作从 kfree() 替换为 kfree_rcu():
-
inet_sock_destruct():子套接字的inet_opt释放 -
tcp_v4_reqsk_destructor():请求套接字的ireq_opt释放
kfree_rcu() 将实际内存回收延迟到 RCU 宽限期结束之后,确保所有在 RCU 读锁下访问这些选项的并发路径(包括 SYN-ACK 构造路径)已完成访问。这与内核中其他替换 inet_opt 的路径(如 do_ip_setsockopt()、cipso_v4_sock_setattr())已有的做法一致。
5.2 系统管理员修复步骤
第一步:确认当前内核版本
uname -r
对照上述修复版本表,或查询发行版安全通告。
第二步:安装发行版提供的修复内核
以 Debian/Ubuntu 系为例(具体包名因发行版而异):
# Debian 12 sudo apt update && sudo apt install linux-image-6.1.0-XX-generic # Amazon Linux 2023(根据实际内核分支选择) sudo dnf update kernel --releasever 2023.12.20261102
AlmaLinux 用户若愿意协助测试,可启用测试仓库验证后安装:
sudo dnf install -y almalinux-release-testing sudo dnf update 'kernel*' --enablerepo=almalinux-testing sudo reboot
第三步:重启并验证
内核更新必须在重启后生效:
sudo reboot uname -r # 确认运行版本已包含修复
5.3 缓解措施(无法立即打补丁时)
目前没有官方认可的完整临时缓解方案。禁用 MPTCP 不能消除主路径漏洞,因为问题位于常规 IPv4 TCP 代码中。可考虑的有限措施包括:
-
限制暴露面:通过防火墙或安全组限制可访问 TCP 监听端口的来源 IP,仅放行必要流量。
-
监控异常:关注
dmesg和/var/log/kern.log中的内核崩溃或内存错误迹象,可能指示利用尝试。 -
优先处理对外服务:公网可达的 Web、邮件、VPN(如 OpenVPN TCP 模式)等服务应最优先修补。
必须强调:上述措施仅降低风险,不能替代内核更新。
六、结论
CVE-2026-98432 是 2026 年最具实际威胁的 Linux 内核远程漏洞之一。其根因在于 IP 选项所有权转移与 RCU 读侧访问之间的生命周期管理缺陷,修复方式明确且已回移至所有维护中的稳定分支。然而,Ubuntu 和 RHEL 作为企业环境中的两大主力发行版,在漏洞公开后近两周仍未发布修复内核,留下了显著的风险窗口。Anthropic 的利用演示进一步证明,该漏洞并非仅存在于理论层面——一个具备中等资源的攻击者(或自动化工具)有可能在可接受的时间范围内完成从网络访问到 root 控制的升级。建议所有运行受影响内核的系统管理员立即核查版本,优先部署发行版补丁,并对无法及时修补的对外服务实施严格的网络访问控制。
参考来源
-
Amazon Linux 2023 Security Advisory ALAS2023-2026-3365
-
CIRT.GY, “Critical Linux Kernel TCP Vulnerability Could Allow Remote Root Access”
-
ShiftDelete.Net, “Claude Linux Exploit Gets Remote Root on Servers in 53 Minutes”
-
SK-CERT, “Kritická zraniteľnosť TCP v jadre Linux”
-
AlmaLinux Blog, “CVE-2026-98432: Patched kernels available in testing”
-
Linux Kernel CVE Announcement, CVE-2026-98432.mbox
-
The Hacker News, “Linux Kernel TCP Flaw With 9.8 CVSS Score Affects Ubuntu, Red Hat and Other Distributions”
-
Beazley Security Labs, “Critical Remote Code Execution Vulnerability in the Linux Kernel TCP Stack”
-
Brandefense, “CVE-2026-98432 Linux Kernel Flaw”
-
Freebuf, “Anthropic未发布Claude模型发现Linux内核漏洞”
相关文档
评论与补充0
有问题或想补充的,写在下面 · 选中正文文字再点「报告错误」会自动引用还没有评论。有疑问、补充,或者发现错字,都可以写在下面。