知识库 使用 Profitserver 服务的简单说明
主要 知识库 Linux 内核严重漏洞 CVE-2026-98432:如何检查和更新您的 VPS

Linux 内核严重漏洞 CVE-2026-98432:如何检查和更新您的 VPS


2026年10月,Linux内核中发现了一个严重漏洞CVE-2026-98432,其CVSS评分为9.8分(满分10分)。该漏洞会影响IPv4 TCP传入连接的处理方式,在特定条件下,攻击者无需密码,也无需管理员采取任何操作,即可远程获得服务器的root权限。

以下内容说明了哪些用户会受到影响、如何检查您的服务器以及如何保护它。所有命令均以 root 用户身份运行。 sudo.

漏洞简述

  • 它是什么: 代码中存在一个释放后使用漏洞,该漏洞存在于建立 IPv4 TCP 连接的过程中,由竞争条件引起。攻击者可以向任何开放的 TCP 端口发送特制数据包。
  • 受影响的内核: 自 Linux 4.4 以来的每个版本,这意味着几乎所有当前的发行版。
  • IPv6 不受主要漏洞的影响。
  • 威胁的真实程度: 人类学研究人员演示了一条有效的漏洞利用链,该漏洞利用链在大约 53 分钟内获得了启用了多路径 TCP (MPTCP) 的服务器的 root 权限。该漏洞利用代码尚未公开。
  • 野外袭击事件: 截至2026年11月1日,尚未有任何滥用报告。因此,我们应该冷静地进行更新,而不是推迟更新。

Go 服务存在一个特殊的风险。自 Go 1.24 版本起,Linux 上的服务器程序默认会通过 MPTCP 协议监听端口(只要内核允许)。管理员甚至可能不知道他们的服务器接受此类连接。流行的程序 Xray 就是这样工作的——其开发者已经发布了紧急版本 v26.10.31,该版本默认禁用 MPTCP。

每个VPS运行着自己的内核,因此您需要自行更新服务器内部的内核。我们会自行更新虚拟化节点。

你的系统有修复方案吗?

截至 2026 年 11 月 1 日的最新情况。修复程序几乎每天都在推出——请查看本文末尾的链接以了解当前状态。

系统 状态 修复内核
Debian 13的 固定 linux 6.12.113-1
Debian 12的 固定 linux 6.1.190-1
Ubuntu 22.04、24.04、26.04 修复进行中 还没到时候——先用临时保护措施。
AlmaLinux 8、9、10 修复测试仓库 8: 4.18.0-553.180.2.el8_10
9: 5.14.0-687.61.2.el9_8
10: 6.12.0-211.69.2.el10_2
Rocky Linux、RHEL 8、9、10 尚未修复 使用临时防护措施
Oracle Linux 7–10 (UEK) 固定 通过标准更新
SUSE / openSUSE Leap 16 固定 通过标准更新

步骤 1. 检查您正在运行的内核版本

找出正在运行的内核版本:

uname -r

单凭版本号无法提供任何信息:发行版会将修复程序移植到自己的内核中,而不会更改基础版本。更可靠的方法是查看内核软件包的变更日志——如果日志中提到了 CVE 编号,则表示该修复程序已安装。

Debian 和 Ubuntu:

apt changelog linux-image-$(uname -r) 2>/dev/null | grep CVE-2026-98432

在 Debian 系统上, uname -v 该命令还会显示正在运行的内核的完整软件包版本:请将其与上表进行比较。

AlmaLinux、Rocky Linux、RHEL、Oracle Linux:

rpm -q --changelog kernel-core-$(uname -r) | grep CVE-2026-98432

如果该命令没有输出任何内容,则正在运行的内核存在漏洞。

接下来,检查哪些服务接受通过 MPTCP 建立的连接。类似这样的服务器是本次演示攻击的目标:

ss -lnMp

输出为空表示没有 MPTCP 监听器。

步骤 2:安装修复后的内核

更新内核前,请先备份服务器或创建服务器快照。

Debian 12 和 13

修复后的内核位于安全存储库中。请确保已启用该存储库:

grep -r security.debian.org /etc/apt/sources.list /etc/apt/sources.list.d/

如果未找到任何内容,则添加 security.debian.org 将版本发布到仓库。然后更新系统:

apt update
apt full-upgrade
reboot

Ubuntu

修复后的内核尚未发布。请检查更新:

apt update
apt list --upgradable | grep linux-image

如果您的服务器使用的是 Ubuntu Pro 系统,您可以查看修复方案:

pro fix CVE-2026-98432 --dry-run

修复程序发布后,请安装并重启:

apt update
apt full-upgrade
reboot

在此之前,请务必按照步骤 3 进行临时保护。

AlmaLinux 8、9、10

目前,修复后的内核仅在测试仓库中提供。如果您熟悉生产服务器的操作,请安装这些内核,并在更新前务必创建系统快照:

dnf install -y almalinux-release-testing
dnf update 'kernel*' --enablerepo=almalinux-testing
dnf config-manager --disable almalinux-testing
reboot

重启后,进行比较 uname -r 使用上表中列出的版本。如果您不想安装测试软件包,请先应用临时保护措施,等待修复程序更新到主仓库。

Rocky Linux 和其他基于 RHEL 的系统

目前还没有修复方案。您可以关注以下操作:

dnf --refresh updateinfo info --all --cves CVE-2026-98432

修复程序发布后:

dnf update kernel
reboot

更新后:需要重启。

新内核只有在重启后才会生效。要检查是否需要重启:

# Debian and Ubuntu
[ -f /var/run/reboot-required ] && echo "Reboot required"

# AlmaLinux, Rocky, RHEL
needs-restarting -r

重启后,从步骤 1 开始重复检查。

步骤 3. 临时保护,直到修复后的内核可用

这些措施可以降低风险,但不能替代内核更新。

阻止触发数据包

该攻击利用在 IPv4 头部带有 IP 选项的 TCP 数据包。这些数据包几乎不会出现在正常流量中,RFC 7126 也建议丢弃它们。以下 nftables 规则会丢弃所有带有选项的入站 IPv4 TCP 数据包,并且不会影响 IPv6、UDP 或 ICMP 协议。它可与 ufw 和 firewalld 配合使用。

如果尚未安装 nftables,请安装它:

# Debian and Ubuntu
apt install -y nftables

# AlmaLinux, Rocky, RHEL
dnf install -y nftables

创建规则文件:

cat > /etc/cve-2026-98432.nft <<'EOF'
table ip cve_2026_98432 {
    chain pre {
        type filter hook prerouting priority -300; policy accept;
        meta l4proto tcp ip hdrlength gt 5 counter drop
    }
}
EOF

为确保每次重启后规则都能恢复,请创建 systemd 服务:

cat > /etc/systemd/system/cve-2026-98432.service <<'EOF'
[Unit]
Description=Mitigation for CVE-2026-98432
After=network-pre.target nftables.service firewalld.service ufw.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=-/usr/sbin/nft delete table ip cve_2026_98432
ExecStart=/usr/sbin/nft -f /etc/cve-2026-98432.nft
ExecStop=/usr/sbin/nft delete table ip cve_2026_98432

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable --now cve-2026-98432.service

检查规则是否已加载:

nft list table ip cve_2026_98432

如果使用全局命令重启 nftables 服务 flush ruleset 规则,运行 systemctl restart cve-2026-98432 之后。

重要提示:请勿将此规则应用于使用 CIPSO 标签(SELinux 或 Smack NetLabel)的网络——这些网络通常会使用 IP 选项。如果您的服务器为其他机器路由流量,则此规则也会丢弃这些机器带有 IP 选项的 TCP 数据包。

如果不需要,请禁用 MPTCP。

sysctl -w net.mptcp.enabled=0
echo "net.mptcp.enabled = 0" > /etc/sysctl.d/99-disable-mptcp.conf

此设置仅阻止 新 阻止创建 MPTCP 套接字。已运行的服务将继续通过 MPTCP 监听,因此请重启列出的每个服务。 ss -lnMp 并确保其输出现在为空。

在 AlmaLinux 系统中,MPTCP 默认情况下是禁用的,除非您自己启用它。

在 Go 程序中禁用 MPTCP

对于使用 Go 1.24 或更高版本构建的服务,您可以使用环境变量禁用 MPTCP。例如,对于名为“ myservice:

systemctl edit myservice

将以下内容添加到打开的文件中:

[Service]
Environment=GODEBUG=multipathtcp=0

然后重启服务:

systemctl restart myservice

X射线更新

如果您的服务器运行的是 Xray,请将其更新至 v26.10.31 或更高版本。之前的版本 v26.10.29 已被开发者撤回。此更新会禁用 MPTCP,但不会修复内核,因此仍然需要更新内核。

检查另一项设置

第二种更狭窄的攻击途径需要启用请求迁移。该功能默认处于关闭状态——请确保已启用:

sysctl net.ipv4.tcp_migrate_req

该命令应该打印 0.

限制对您服务的访问

关闭所有无需从互联网访问的防火墙端口。尽可能仅对受信任的 IP 地址开放管理服务(例如 SSH、控制面板和数据库)。

步骤 4. 安装修复后的内核

  1. 重启服务器,并使用步骤 1 中的命令来确认修复后的内核正在运行。
  2. 您可以移除临时规则:
    systemctl disable --now cve-2026-98432.service
    rm /etc/systemd/system/cve-2026-98432.service /etc/cve-2026-98432.nft
    systemctl daemon-reload

  3. 如果需要 MPTCP,请恢复设置:删除 /etc/sysctl.d/99-disable-mptcp.conf 并运行 sysctl -w net.mptcp.enabled=1.

如果出现问题

如果内核更新后服务器无法启动,请通过控制面板中的 VNC 控制台连接,并在启动菜单中选择之前的内核版本。如果您不确定能否自行完成此操作,或需要更新方面的帮助,请联系我们的支持团队。


向我们咨询有关 VPS 的问题

无论白天还是黑夜,我们随时准备解答您的问题。