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 中的命令來確認修復後的核心正在運行。
- 您可以移除臨時規則:
systemctl disable --now cve-2026-98432.service
rm /etc/systemd/system/cve-2026-98432.service /etc/cve-2026-98432.nft
systemctl daemon-reload - 如果需要 MPTCP,請恢復設定:刪除
/etc/sysctl.d/99-disable-mptcp.conf並運行sysctl -w net.mptcp.enabled=1.
如果出現問題
如果核心更新後伺服器無法啟動,請透過控制面板中的 VNC 控制台連接,並在啟動選單中選擇先前的核心版本。如果您不確定能否自行完成此操作,或需要更新方面的協助,請聯絡我們的支援團隊。