代码的简洁性,源于对业务的深刻理解。

Linux 内核爆出 9.8 分漏洞:远程拿 root 有条件,先自查这两项

热点话题 2026-11-04 1 阅读

Linux 内核两个漏洞要分开看:10 月披露的 CVE-2026-98432 评分 9.8,但公开演示的远程 root 前提是开启 MPTCP 监听,尚未确认在野利用;4 月披露的 Copy Fail(CVE-2026-31431)是本地提权,已列入在野利用清单,容器环境要重点防。附三条自查命令与分级处置建议,不需恐慌,先核实再行动。

Linux 内核爆出 9.8 分漏洞:远程拿 root 有条件,先自查这两项

这段时间有客户转来一篇"Linux 高危漏洞"的提醒,问要不要先停业务处理。这里先把结论放在前面:文中提到的两个漏洞都真实存在,但它们是两件性质完全不同的事——一个决定你这周要不要安排一次维护窗口,另一个决定半年前该补的账有没有补上。

两件都不需要恐慌,但都值得花五分钟核实一下自己的服务器到底在什么状态。

一、先把两个漏洞分清楚

被放在一起讨论的两个编号,披露时间相差近半年,攻击前提也完全不同。混淆之后很容易得出"所有 Linux 服务器都危险"的错误印象。

对比项CVE-2026-98432CVE-2026-31431(Copy Fail)
披露时间2026 年 10 月 15 日2026 年 4 月 22 日(不是新漏洞)
攻击前提公网可达 + 服务器开启 MPTCP 监听攻击者已拿到本机一个普通账号
评分内核 CNA 评 9.8;Red Hat 评 5.97.8
利用现状未确认在野利用,已出现扫描探测5 月 1 日已被 CISA 列入在野利用清单

二、9.8 分那个:远程拿 root 是有条件的

编号 CVE-2026-98432,问题出在 Linux 内核处理 IPv4 TCP 连接建立的代码里。简单说,是内核在握手过程中把一块内存交出去之后,又有人去读它、可能还把它释放了,安全领域把这叫"释放后重用"(use-after-free)。内核 4.4 以后的版本都在影响范围内,也就是说多数还在服役的服务器都躲不开这个前提。

但"受影响"和"今晚就会被攻破"是两回事。目前公开演示成功的远程 root,前提是服务器开启了 MPTCP 监听。MPTCP 是多路径 TCP,让一条连接同时走多条网络路径,一般业务默认不开;不过 Go 语言从 1.24 版本开始,运行时会在监听套接字上默认尝试开启它,所以用新版本 Go 写的服务要格外留心。

这个漏洞之所以受到关注,还有一个原因:Anthropic 披露其未发布的 Claude 模型自主写出了一条可用利用链,在开启 MPTCP 的测试服务器上大约 53 分钟拿到 root,且不需要任何账号密码。概念验证程序目前已公开,安全厂商也监测到了针对该漏洞的扫描探测行为。但截至目前,没有确认的在野大规模利用。

另一个值得注意的细节是评分分歧:内核 CNA 给的是 9.8,Red Hat 给的是 5.9,理由是触发这个竞态条件比发一个畸形数据包复杂得多,其评估的主要后果是内核崩溃与拒绝服务。这个差异不是谁算错了,而是评估口径不同——决定你打补丁的紧急程度时,以自己所用发行版的安全通告为准,比只看一个总分更靠谱。

没开 MPTCP 的服务器,目前没有被公开演示的远程代码执行路径,但内存破坏和拒绝服务的风险仍然存在。这句话既不该被理解成"完全没事",也不该被理解成"人人自危"。

三、Copy Fail:不是新漏洞,是一笔该补的旧账

编号 CVE-2026-31431,代号 Copy Fail,评分 7.8。它和上面那个要严格区分:不能从外网直接打,必须先在本机拿到一个低权限账号,再从本地提权到 root。

它的手法比传统提权更隐蔽。攻击者借助内核加密接口(AF_ALG)和 splice 系统调用,向任意可读文件的页缓存里写入 4 个可控字节——页缓存是系统为加速读取而在内存里留的文件副本。改的是内存里的副本,磁盘上的原文件纹丝不动,因此基于文件校验的完整性检测工具看不到任何异常,但系统之后读取、执行这个程序时,用的都是被改过的那份。

公开资料显示,一段七百多字节的脚本就能篡改 setuid 程序(比如 su、sudo 这类以高权限运行的程序)拿到 root,影响 2017 年以来的内核版本,Ubuntu 24.04、Amazon Linux 2023、RHEL 8/9/10、SUSE 16 等主流发行版都在名单里。由于页缓存是全局共享的,这个原语还能跨容器边界使用,对云上多租户、容器平台来说,风险比单机更现实。

需要强调的是时间线:它在 4 月 22 日就已公开,5 月 1 日被 CISA 列入"已知被利用漏洞"目录。也就是说,这条不是"刚刚爆发",而是"已经有人用过、你补没补"的问题。把它和 10 月的新漏洞并列写成"紧急预警",容易让人误判优先级。

四、五分钟自查:三条命令看清状态

不需要懂内核,在服务器上依次执行下面三条就能定位。

先看 MPTCP 是否开启:执行 sysctl net.mptcp.enabled。返回 1 表示已开启,返回 0 表示关闭。业务用不到多路径 TCP 的,这一项开着就可以考虑先关掉。

再看当前内核版本:执行 uname -r,把结果抄下来。

然后对照发行版的安全通告:拿上一步查到的版本号去查厂商公告,确认是否已进入修复版本。公开信息显示,Debian 12 修复于 6.1.190-1、Debian 13 修复于 6.12.113-1,Amazon Linux 2 与 2023 已发布内核更新;截至 10 月 30 日,Ubuntu 与 RHEL 的部分分支仍在陆续推送,具体以厂商公告为准。

还有一个常被忽略的点:补丁装上不等于生效,内核更新后必须重启才算真正切换到新内核。查一下机器的连续运行时间,如果更新完一直没重启,那台机器仍然跑在旧内核上。

五、按优先级处置

  1. 能升级内核的,优先升级。这是根本办法,临时缓解只是应急。升级前做好数据备份与停机评估,别在业务高峰动手。
  2. 暂时不能升级的公网服务器,先关掉不需要的 MPTCP。多数网站、API、后台业务都用不到多路径 TCP。操作方式是写入 net.mptcp.enabled=0 到 sysctl 配置并执行 sysctl -p,改完记得确认返回值为 0。要清楚这只是阻断这一条远程利用路径,内核代码里的内存问题并没有消失,拒绝服务风险仍在。
  3. 容器与 Kubernetes 环境重点收紧权限:不给外部人员在容器里开 shell,禁止特权容器与宿主机目录直挂,Capability 按需最小化。Copy Fail 需要先有一个低权限落脚点,把落脚点堵住,比事后追查便宜得多。
  4. 通用加固:非必要端口不暴露公网,开启登录与提权审计并关注陌生 root 登录告警,不用的内核模块做黑名单处理,减少可攻击面。

六、三个容易误读的地方

误读一:Linux 不安全了。不是。这是内核里某段特定代码的缺陷,不是整个系统体系失效。Windows、各类商业系统同样在持续出漏洞,差别只在于你是否能及时感知并修复。

误读二:关掉 MPTCP 就万事大吉。关掉可以阻断这条远程 root 的路径,但底层的内存安全问题依然在,异常流量导致崩溃的可能性没有消除。长期看,把内核升到修复版本才是正解。

误读三:Copy Fail 从外网能直接打。不能,它需要本地落脚点。但反过来说,一旦攻击者通过弱口令、暴露的调试端口进了容器,从容器里利用它横向到宿主机,成本很低——所以云原生环境不该因为"它只是本地漏洞"就往后排。

七、总结一下

漏洞这件事,真正决定损失大小的往往不是漏洞本身有多严重,而是你有没有一张清楚的服务器清单、知不知道每台机器跑什么内核、更新后有没有真的重启。有这三样,任何一次预警都只是半天的工作量;没有这三样,同一条预警就变成了彻夜排查。

下一步,建议今天就做一件事:找一台自己的服务器,执行 uname -r,把结果和系统版本一起发给服务商或运维负责人,只问一句话——"我们这台机器的内核是否已经在厂商的修复版本上,更新后重启过没有"。如果你并不清楚这些服务器归谁管,那就先把清单列出来,这本身就是一个有价值的开始。

说明:本文基于公开漏洞公告与厂商通告整理,仅作风险提示与自查参考,不构成安全承诺或处置方案。任何升级与配置变更,请先在测试环境验证,再安排到生产环境,避免影响业务。