跳至正文
Wener Notes

CVE-2026-98432

约 6 分钟阅读
  • Linux IPv4 TCP 建连中的 IP options use-after-free;根因从 Linux 4.4 引入
  • CNA 公开:2026-10-15;资料核对:2026-11-03
  • CVSS 3.1 9.8 Critical(Linux CNA);Red Hat 当前为同一评分,verified
    • CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    • NVD 当前状态 Received;9.8 指标引用 Linux CNA,不是 NVD 独立评分
    • Red Hat 映射为 CWE-825;所读 CNA JSON 没有 problemTypes
  • Anthropic 报告已对 MPTCP listener 实现未认证远程 root 命令执行;这是研究方声明,本次未复现
  • Go 1.24 起 Linux 监听默认启用 MPTCP,实际还受内核支持和程序设置影响;缺陷本身不限 MPTCP

成因与利用条件

  • 带 IPv4 Record Route / Timestamp 等 options 的 SYN 到达 TCP listener;options 保存于 request 的 ireq_opt
  • tcp_v4_syn_recv_sock() 将同一对象转交 child 的 inet_opt,不复制底层对象
  • 并发重传 SYN 的线程可能已经在 RCU 读侧取得旧指针,继续构造 SYNACK
  • Child 关闭时,inet_sock_destruct() 原来的 kfree() 立即释放 options;读侧的 ip_options_build() 随后访问悬空指针
    • 使用已释放对象的长度复制数据、按 Record Route / Timestamp offset 写入,可能造成内核内存泄露、越界写或崩溃
    • RCU 读锁不会阻止普通 kfree();request 引用计数也不等于 options 仍存活
  • 第二条路径是 request migration:net.ipv4.tcp_migrate_req=1 或 BPF migration 程序令旧 request 与 clone 共享 options,clone 析构可能过早释放
  • 所需入口在 TCP 握手阶段,不依赖 HTTP handler、应用身份认证或用户操作
    • IPv4 options 与 TCP options 不同,不能把 TCP Timestamp / SACK / MPTCP options 混为一谈
    • 演示用 MPTCP,普通 IPv4 TCP 仍需修复;关闭 migration 也不能消除第一条路径
    • IPv6 不受第一条路径影响;公告另提 CALIPSO migration 需要独立补丁,不扩大为 IPv6 一概无漏洞
text
带 IPv4 options 的 SYN
  → request 保存 options
  → 并发重传 SYN 读取同一指针,构造 SYNACK
  → 建连线程将 options 交给 child
  → child 关闭,旧实现立即释放 options
  → 原读者继续使用已释放对象

影响与研究演示

能力证据与边界
远程内核崩溃、内存泄露或破坏CNA 场景和补丁支持;真实触发受报文可达性、竞态与内核配置影响
MPTCP 上的远程 root RCEAnthropic 10-27 报告,Go 安全团队随后引用;本次未取得完整 exploit 或运行验证
普通 TCP 上的稳定 root RCE本次没有确认此能力的公开完整代码或独立复现
成功在野利用本次没有确认;研究演示和公开探测代码不自动证明真实攻击

Anthropic 描述两阶段利用:先通过越界读泄露内核指针以绕过 KASLR,再利用 UAF 破坏内存、劫持回调执行 root 命令。其示例耗时约 48 分钟加 5 分钟;这是研究方特定实验的结果,不是所有系统的成功率或时间保证。

修复与发行版回补

上游分支首个修复版本修复 commit
5.105.10.272b3b027ef0cd322bfa839b9aaf5b27551eea54cf6
5.155.15.22395a8c8fa9f27dce64c40c41c062de7728bf34ab5
6.16.1.19089b5b1eb7d633c33832b7ff2c02e19a144705036
6.66.6.159742f73df544e03744f2981c467d6542fe8172a2a
6.126.12.11311a03ce3c4a62d84c10ccdfe47f8075006498568
6.186.18.56a47406c769f72c070386985488f1c4d057df86b2
7.27.2.1026d4c36d318cffbbd160884a0e4cec0da4da4936
主线7.3-rc7,正式版 7.3 含修复e3f33b0a1d89d738e2b913dab519226eaf76e15b
  • 引入 commit:079096f103faca2dd87342cca6f23d4b34da8871
  • 修复把 inet_sock_destruct() 与 tcp_v4_reqsk_destructor() 的两处 kfree() 改为 kfree_rcu(),等 RCU 读侧宽限期结束再释放
  • 未列出的旧分支、云内核、RT、发行版内核需核对供应商回补;RC 只用于定位主线修复进入点
  • 2026-11-03 查询的发行版快照:
    • Red Hat 已列出 11-01 的修复公告;RHEL 8 4.18.0-553.182.1.el8_10、RHEL 9 5.14.0-687.64.1.el9_8、RHEL 10.2 6.12.0-211.72.1.el10_2。其他渠道单独核对
    • AlmaLinux 官网 11-02 更新称对应 8/9/10 包已进入 production repos,无需再启用 testing repo
    • Ubuntu 页面标注更新 10-30,所读默认 linux 26.10/26.04/24.04/22.04 仍为 Vulnerable, work in progress;其计划版本不能当成已发布修复
    • AWS 11-02 公告称 AL2 / AL2023 有修复包;AL2023 release lock 需关注 2023.12.20261102 或更新发布
  • 安装修复内核后需按平台流程重启、替换节点,或确认覆盖此 CVE 的 livepatch 已生效
    • 容器共享宿主机内核,更新镜像不等于修复宿主机
    • 较低版本号可能已有回补;uname -r 单独不能代替供应商修复证明

Go 与临时缓解

  • Go 安全团队公告:Go 1.24 起 Linux listen socket 默认启用 MPTCP
    • GODEBUG=multipathtcp=0:改变运行默认值;主模块 godebug multipathtcp=0:改变构建默认值
    • 实际默认值还受 go.mod / go.work 的兼容性设置影响;逐 socket 的 SetMultipathTCP() 覆盖 GODEBUG
    • 应检查实际 listener;只改环境变量不关闭已建立的监听,升级 Go 也不能代替内核补丁
  • 关闭 MPTCP 只降低已报告利用链的暴露面;系统级关闭只阻止新 socket,应确认已有 listener 被重建
  • 关闭 request migration 只阻断第二条路径;底层普通 TCP 缺陷仍在
  • 限制不受信任来源,或按厂商指导过滤带 IPv4 options 的 TCP,可临时缩小可达面
    • AlmaLinux 的示例匹配 ip hdrlength > 5;需评估 NetLabel/CIPSO 以及同机容器流量绕过入口 hook 的情况
    • HTTP WAF、TLS 和应用认证不直接处理该内核握手缺陷;负载均衡是否终止 TCP、是否透传 IP options 需分别确认

以下为 Linux 只读检查示例,本次未执行;ss -M 需 iproute2 支持,应覆盖相关 network namespace:

bash
uname -r
sysctl net.mptcp.enabled net.ipv4.tcp_migrate_req
ss -M -l -n -p

PoC

  • Anthropic 公开文章描述远程 root 利用链,本次所查文章没有发布完整 exploit;不能写成“已验证复现”
    • MIT, Rust
    • Detector/trigger 与本地 lab;固定 commit 11d7174a372185b9b54d2f000923e3ab4629ebd0
    • 所读 README 明确没有 RCE、KASLR leak 或 write primitive,候选 UAF 事件不稳定;本次只核对 README / 文件树,未完整审计代码
    • 远程 UAF probe;固定 commit 19264e54b4a5bbd1963e9e01f71abecc769599bc
    • README 声称有 wire-visible / KASAN 证据,同时说明使用特制内核、延长窗口和 CPU steering;不包含控制流劫持或 root 命令执行
    • 项目的可利用性推测不是独立事实;实验室证据也不证明普通生产内核稳定可利用
  • 这些工具会发包、触发内核竞态,部分模式调整防火墙;不能当作普通生产健康检查。未构建、执行或向任何目标发送验证报文

利用情报

来源核对结果边界
FIRST EPSS数据日期 2026-11-02,0.004570000(0.457%),percentile 0.396490000(约第 39.649 百分位)未来 30 天利用概率模型,与攻击成功率不同
CISA KEV 官方镜像2026.10.30 目录,完整解析 1,766 条,未命中官方网站 fetch 失败;仅能说明镜像快照,不能证明 11-03 实时未收录或无在野攻击
AWS11-02 公告称尚无被利用证据厂商观测,不是全球无利用证明

参考

关联信息

反向链接、本文链接的其他页面和外部资料。

站内链接

  • MPTCP
    笔记 · MPTCP

    MPTCP - Multipath TCP · Linux 5.6+ MPTCP v1 · rfc8684 · TCP Extensions for Multipath Operation with Multiple Addresses · https://lwn.net/Articles/544399/

参考资料

GitHub7 条
其他外链13 条
最近更新commit 346d308编辑