Linux 高危漏泂 CVE-2026-98432
| | | 0 | |
資安的多事之秋,IT 的黑色十月,幾枚資安漏洞連環爆,從 PHP2Shell、GitLab Critical RCE、Google Brotli,到月底的 Linux 高危漏洞,個個重要又緊急,系統管理員連夜修補,忙到快升天...
我沒在用 PHP、GitLab,影響較大的應屬 Linux CVE-2026-98432,私人有幾個 Docker 跑的服務可能有危險,這篇做個簡單整理。
漏洞原理跟細節我就不深入了,特別麻煩是因為漏洞發生在 Linux 核心,上面的所有應用程式無差別曝險。問題發生在 IPv4 TCP 三向交握時,連線請求若帶有 IP options 物件會被移交給新連線(沒採用複製),接著由某個 CPU 呼叫 kfree() 釋放物件,此若某剛好有另一個 CPU 在 RCU 讀取區段內用它組 SYN-ACK,便會形成 use-after-free (UAF)。攻擊者設法讓讀取動作與釋放動作競爭 (Racing) ,可故意觸發 UAF 不安全存取。
問題元件在 net/ipv4/af_inet.c、net/ipv4/tcp_ipv4.c,Linux 4.4 起就存在,檯面上的 Linux 核心幾乎全中,容器與主機共用同一顆核心,容器化也無法隔離核心漏洞,Red Hat 給出了 Critical 9.8 的嚴重度分數。
TCP 交握這塊由作業系統核心掌握,所以不管你的應用程式是 C#、Go 或 Node.js,不管有沒有驗證機制,只要 IPv4 TCP port 可被連線就可能受影響。但一般 Web、SSH、郵件流量幾乎不使用 IP options,故「直接丟棄帶 options 封包」可視為一種緩解措施。
Anthropic 在 10/27 展示一種攻擊手法 - 利用 Multipath TCP (MPTCP) 允許單一 TCP 連線同時透過多個不同的網路介面或路徑傳輸資料的特性 (例如同時用 Wi-Fi 與行動網路 4G/5G),對啟用 MPTCP Listener 的伺服器發動攻擊,不需要帳密、不需使用者互動,歷經約一小時成功以 root 執行自訂指令。由於嘗試 Race 失敗僅會以 TCP 連線失敗收場,不影響主機也無 Log 可追,攻擊者能無限重試。
若鎖定對象為 MPTCP,Go 開發程式會格外危險,理由是 Go 1.24 起在 Linux 上的 listen socket 預設會啟用 MPTCP,正是 Anthropic 本次展示的標的。目前已知有以下方法可以暫時停用:
- 執行期:在環境變數設定
GODEBUG=multipathtcp=0 - 建置期:在 main module 的
go.mod加入godebug multipathtcp=0 - 個別 socket:呼叫
net.ListenConfig.SetMultipathTCP(false)
即使非 Go 語言或程式在 Docker 中執行,仍建議檢查主機上是否有 MPTCP listener:
uname -r # 核心版本
sudo ss -M -lpn # 列出 MPTCP listener 及其行程
/usr/sbin/sysctl net.ipv4.tcp_migrate_req # 應為 0,防止透過 Request Socket Migration 觸發
go version -m /path/to/binary | head -1 # 確認 Go 版本 (1.24+ 預設 MPTCP)

我的家用主機上幾個 Go 服務有開 MPTCP,但幸好未對外
以下是一些緩解做法:(注意:無法取代修補)
- nftables 丟棄帶 IPv4 options 的入站 TCP 封包 (AlmaLinux 提供規則),但重開機後失效且不涵蓋同一主機容器間的流量,另外不適用使用 CIPSO 安全標籤的網路
sudo nft -f - <<'EOF' add table ip cve_2026_98432 delete table ip cve_2026_98432 table ip cve_2026_98432 { chain prerouting { type filter hook prerouting priority -300; policy accept; meta l4proto tcp ip hdrlength > 5 counter drop } } EOF - 確認
net.ipv4.tcp_migrate_req = 0 - 開機參數
init_on_free=1:釋放時把記憶體清為零,不能修正但可減少資訊洩漏,且有約 1–5% 的效能成本 - 縮小暴露面:關閉不必要的 port,管理介面只開放特定 IP 或 VPN
BUT! MPTCP 是目前有被揭露的手法,不代表是唯一要防守的點。ASP.NET Core Kestrel 沒啟用 MPTCP,仍可能存在其他 IPv4 options 攻擊手法,根本解法還是儘速更新 Linux 版本。以下是各發行版本截至 2026/11/2 的修補狀態:
| 發行版 | 狀態 |
|---|---|
| Debian 12、13 | 已修正 (6.1.190-1、6.12.113-1) |
| Oracle Linux (UEK) | 已修正 (2026-10-16) |
| Amazon Linux 2、2023 | 已修正 |
| SUSE | SLES 16.0、15 SP4–SP6 LTSS、Leap 16.0 已修正;SLES 15 SP7 尚在處理 |
| AlmaLinux 8、9、10 | 已修正,正式 repo (2026-11-02) |
| Ubuntu 22.04、24.04、26.04、26.10 | 尚未釋出 |
| RHEL 8、9、10 | 已修正 (2026-11-01,RHSA-2026:93412~93415);RHEL 6、7 不受影響 |
Linux kernel CVE-2026-98432 (CVSS 9.8) is a use-after-free in the IPv4 TCP handshake. It affects every application and container on Linux 4.4 and later. This post covers the MPTCP risk for Go 1.24+, detection commands, nftables mitigations, and each distro’s patch status.
Comments
Be the first to post a comment