黑海洋 黑海洋 WIKI

CVE-2026-98432 漏洞分析与修复指南

安全 更新于 11-01 13:41 · 约 11 分钟 · 黑海洋 · 9,875

摘要

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 之后不再受监听锁保护,可以独立于监听套接字被处理。具体竞态窗口如下:

  1. CPU A 完成握手,子套接字获得 inet_opt 的所有权。若此时子套接字被关闭,inet_sock_destruct() 使用普通的 kfree() 立即释放该内存。

  2. 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 控制的升级。建议所有运行受影响内核的系统管理员立即核查版本,优先部署发行版补丁,并对无法及时修补的对外服务实施严格的网络访问控制。

参考来源

  1. Amazon Linux 2023 Security Advisory ALAS2023-2026-3365 

  2. CIRT.GY, “Critical Linux Kernel TCP Vulnerability Could Allow Remote Root Access” 

  3. ShiftDelete.Net, “Claude Linux Exploit Gets Remote Root on Servers in 53 Minutes” 

  4. SK-CERT, “Kritická zraniteľnosť TCP v jadre Linux” 

  5. AlmaLinux Blog, “CVE-2026-98432: Patched kernels available in testing” 

  6. Linux Kernel CVE Announcement, CVE-2026-98432.mbox

  7. The Hacker News, “Linux Kernel TCP Flaw With 9.8 CVSS Score Affects Ubuntu, Red Hat and Other Distributions” 

  8. Beazley Security Labs, “Critical Remote Code Execution Vulnerability in the Linux Kernel TCP Stack” 

  9. Brandefense, “CVE-2026-98432 Linux Kernel Flaw” 

  10. Freebuf, “Anthropic未发布Claude模型发现Linux内核漏洞” 

相关文档

评论与补充0

有问题或想补充的,写在下面 · 选中正文文字再点「报告错误」会自动引用

还没有评论。有疑问、补充,或者发现错字,都可以写在下面。

就事论事,别发广告 · 正常评论