紅帽(Red Hat)11 月 2 日把 Linux 核心漏洞 CVE-2026-98432 的 CVSS 評分調高到 9.8,此前給過的分數從 5.9 到 8.1 不等,並在 11 月 1 日釋出了 RHEL 8、9、10 的修補核心。Ubuntu 的狀態仍是修復進行中。
這個漏洞出在 IPv4 TCP 的連線建立流程,從網路端就能觸發,不需要認證,也不需要使用者操作。受影響範圍從 Linux 4.4 算起,根源要追溯到 2015 年的一次提交。
兩行程式碼修掉的競爭條件
SYN 封包如果帶有 IPv4 選項(例如 Record Route、Timestamp),核心會把這些選項存放在請求 socket 上。握手完成時,這塊記憶體的指標被直接交給子 socket,沒有複製,兩邊共用同一份。
此時如果另一顆 CPU 正因為重傳的 SYN 而在建構 SYN-ACK,而子 socket 剛好被銷毀,選項記憶體就會被 kfree() 立刻釋放,建構 SYN-ACK 的路徑讀到的已是釋放後的記憶體。
修補由 Eric Dumazet 提交,commit 為 e3f33b0a1d89,把 kfree() 換成 kfree_rcu(),等 RCU 寬限期過後才釋放,只動了兩行。漏洞回報者是 Anthropic 的 Xinyang Ge。CVE 紀錄於 10 月 15 日發布,穩定分支的修復版本為 5.10.272、5.15.223、6.1.190、6.6.159、6.12.113、6.18.56 和 7.2.10,主線在 7.3。
Anthropic 的說法只有它自己能證明
讓這個漏洞受到關注的,是 10 月 27 日 Anthropic Frontier Red Team 的一篇文章。文章稱,一個尚未發布的內部模型為它寫出了利用程式,能在開啟 MPTCP 監聽的伺服器上,讓未經認證的遠端攻擊者以 root 身分執行指令。
利用分為兩段:先藉由競爭條件越界讀取核心記憶體,洩漏指標、繞過 KASLR;再用越界寫入覆蓋回呼函式指標。Anthropic 給出的耗時是洩漏指標約 48 分鐘,再過約 5 分鐘取得指令執行。
這裡有幾處必須分開看。利用程式碼、測試用的核心版本與設定都沒有公開,目前沒有第三方驗證;CVE 紀錄和修補提交都沒提到 MPTCP,文章也沒有解釋為什麼必須有它;53 分鐘是未知環境下的數字,不能直接套用到線上伺服器。截至 11 月 2 日,沒有廠商、CERT 或核心 CVE 團隊回報在野利用,CISA 的已知遭利用漏洞目錄也沒有收錄。
部分中文圈傳播中寫的「Anthropic 已公布利用範例」,準確地說是公布了利用過程的描述,並沒有釋出可執行的程式碼。
評分上的分歧也還在。核心 CVE 團隊與紅帽現在給 9.8,Oracle、SUSE、Amazon 給 8.1,差別在於把攻擊複雜度評為低還是高。NVD 尚未給出自己的分數。
Go 把前提條件變成了預設值
10 月 29 日 Go 安全團隊的公告讓影響面擴大。從 Go 1.24 起,multipathtcp 的預設值是 2,意思是只在監聽端啟用 MPTCP。也就是說,用 net.Listen 啟動服務的 Go 程式,預設就滿足 Anthropic 展示的那個前提。
Go 團隊提供的緩解辦法是在執行階段設定 GODEBUG=multipathtcp=0,或在主模組的 go.mod 裡寫 godebug multipathtcp=0,同時把這種逐個程式關閉的做法稱為 "a fragile mitigation"(一種脆弱的緩解手段)。Go 團隊認為現在更改預設值為時過早。核心端可以把 net.mptcp.enabled 設為 0,但這只是去掉了展示過的前提,漏洞本身仍在。
維運人員可以先做什麼
各發行版的狀態(部分為 10 月 29 日、部分為 11 月 2 日的檢查結果)大致如下:
| 發行版 | 狀態 |
|---|---|
| RHEL 8、9、10 | 已修復 |
| RHEL 9 real-time、OpenShift 4 | 受影響,尚無修復 |
| RHEL 7 | 不受影響 |
| Debian 12、13 | 已修復 |
| Ubuntu 22.04、24.04、26.04、26.10 | 受影響,修復進行中 |
| Ubuntu 16.04、18.04、20.04 | 受影響,尚無修復 |
| Amazon Linux 2、2023 | 已修復 |
| Oracle Linux(UEK) | 已修復 |
雲端主機使用者中 Ubuntu 的占比不低,這張表裡最需要盯緊的就是它。發行版大多靠回移(backport)修補來修復,所以判斷是否已修好,要對照自家安全公告中的套件版本,只看 uname -r 的主版本號容易看錯。安裝新核心後需要重新開機,熱修補(live patch)是另一套機制,得單獨確認。
暫時等不到修補的機器,可以先盤點有哪些服務在監聽 MPTCP,尤其是 Go 1.24 之後編譯的執行檔,再決定是否依上述辦法關閉。廠商並未確認關閉 MPTCP 能消除所有風險,這一步只算爭取時間。核心崩潰日誌中如果出現 ip_options_build 這類函式,也應該查一下。
參考來源:Anthropic Frontier Red Team 文章的公開轉述、Rescana 漏洞通報、CocoLoop、Go 安全團隊公告、Debian 與紅帽安全追蹤頁面;評分與發行版修復狀態以各廠商公布的口徑為準,Anthropic 的利用細節未經獨立驗證。