了解并检查 CVE-2026-98432,这是 Linux 内核 IPv4 TCP 握手过程中的竞态条件,可让远程攻击者使用已释放的内核内存。Anthropic 的 Frontier Red Team 将其转化为针对运行 多路径 TCP(MPTCP) 监听器的服务器的零点击 root 漏洞利用。截至 2026 年 10 月 30 日,Ubuntu 和 Red Hat 尚未发布修复后的内核。
改为在浏览器中粘贴命令输出: https://fbuff.com/tools/cve-2026-98432-checker/(本地运行,不会上传任何内容)
每个 TCP 连接都从握手开始:客户端发送 SYN,服务器回复 SYN-ACK,客户端再回复 ACK。在 SYN 与 ACK 之间,内核会为这个半开连接保留一个小型占位符,即 request socket。如果客户端的 SYN 携带了 IPv4 选项(Record Route、Timestamp 等),内核会将这些选项与占位符一起保存(ireq_opt),因为 SYN-ACK 必须将它们回显。
当 ACK 到达时,tcp_v4_syn_recv_sock() 会将占位符转换为完整套接字,并将同一个选项块交给它,而不是副本。此时两个对象指向同一块内存。当完整套接字被销毁时,inet_sock_destruct() 会用普通的 kfree() 立即释放该内存块。
占位符位于已建立连接的哈希表中,其他 CPU 会在不加锁的情况下读取该表(这一设计源自提交 079096f103fa,"tcp/dccp: install syn_recv requests into ehash table",Linux 4.4,2015 年)。如果客户端在恰当时机重传其 SYN,另一个 CPU 正在重发 SYN-ACK,并在内存块被释放的同时于 ip_options_build() 中读取这些选项:这就是释放后使用。
可以想象一个衣帽寄存处把同一张取衣票发给两个人。当其中一人离开时,服务员把票扔掉,而另一个人还拿着它走向柜台。
修复方案(上游提交 e3f33b0a1d89,"ipv4: free inet_opt and ireq_opt after an RCU grace period",7.3-rc7)使用 kfree_rcu() 释放该内存块,它会等待所有 CPU 完成读取。IPv6 不受主要问题影响,因为 tcp_v6_syn_recv_sock() 会复制选项。通过请求迁移(net.ipv4.tcp_migrate_req=1 或 BPF_SK_REUSEPORT_SELECT_OR_MIGRATE 程序)还存在第二条通往同一内存的路径。
| 评分方 | 分数 | 备注 |
|---|---|---|
| Linux 内核 CVE 团队(CNA) | 9.8 | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Red Hat | 8.1 | AC:H:竞态难以获胜(初步) |
| Ubuntu | 9.8,优先级 High |
MPTCP 允许一个连接同时使用多条路径。在 Linux 上它是可选的:程序必须请求 MPTCP 套接字,ss -Mltn 会列出正在监听的套接字。Anthropic 的漏洞利用针对的是"运行多路径 TCP 监听器的 Linux 服务器"。CVE 记录和修复方案均未提及 MPTCP,Anthropic 也未说明没有 MPTCP 监听器的服务器是否可被接管。MPTCP 监听器是已被证实的 root 路径;每个未打补丁的服务器仍在运行有缺陷的代码。
| 发行版 | 状态 |
|---|---|
| Debian 12 bookworm | 已修复:linux 6.1.190-1(DLA-4841-1)、linux-6.12 6.12.113-1~deb12u1 |
| Debian 13 trixie | 已修复:linux 6.12.113-1(DSA-6568-1) |
| Ubuntu 22.04、24.04、26.04、26.10 | 存在漏洞,修复进行中 |
| Ubuntu 16.04、18.04、20.04 | 存在漏洞 |
| Ubuntu 14.04 | 不受影响 |
| Red Hat Enterprise Linux | 受影响;Red Hat 表示没有缓解措施符合其标准 |
| 上游稳定版 | 已在 5.10.272、5.15.223、6.1.190、6.6.159、6.12.113、6.18.56、7.2.10 和 7.3 中修复 |
curl -fsSLO https://raw.githubusercontent.com/fbuff-tools/cve-2026-98432-checker/main/check.sh
sh check.sh
脚本会读取 uname -r、/etc/os-release、内核软件包变更日志(rpm -q --changelog,或需要网络的 apt changelog)、sysctl net.mptcp.enabled net.ipv4.tcp_migrate_req 以及 ss -Mltn。它会输出判定结果,并以 0(已修补或不受影响)、1(存在漏洞)或 2(无法判断)退出。它只进行读取;不会发送或更改任何内容。请在宿主机上运行它:容器共享宿主机的内核。
发行版内核(例如 Ubuntu 的 6.8.0-85 或 RHEL 的 5.14.0-570)会在不更改版本号的情况下向后移植修复,因此只有它们的变更日志才能说明情况。上游风格的版本(6.12.113+deb13)会与上述已修复版本进行比较。
sudo apt update && sudo apt full-upgrade # Debian, Ubuntu
sudo dnf upgrade kernel # RHEL family, Amazon Linux 2023
sudo zypper patch # SUSE
sudo reboot
sudo sysctl -w net.mptcp.enabled=0
sudo sysctl -w net.ipv4.tcp_migrate_req=0
printf 'net.mptcp.enabled = 0\nnet.ipv4.tcp_migrate_req = 0\n' | sudo tee /etc/sysctl.d/90-cve-2026-98432.conf
ip_options_build 或 ip_build_and_send_pkt 的行(journalctl -k),或者来自同一来源的带有 IPv4 选项的 SYN 突发。步骤 2-4 均不能替代补丁,且没有任何厂商确认它们可作为完整的变通方案。
相关:KSMBD checker、HTTP2Shell checker、PHP2Shell checker。
信息截至 2026 年 10 月 30 日;修复状态变化很快,请查看你所用厂商的跟踪器。MIT 许可证。由 fbuff 制作。