Anthropic 揭露了核心 TCP 協定堆疊中的一個嚴重漏洞 (CVE-2026-98432)。 Linux該漏洞允許攻擊者透過發送特製資料包來遠端執行程式碼。目前已報告一個可用的漏洞程序,該程序允許攻擊者在核心層級執行程式碼,並遠端取得系統的 root 權限。此漏洞適用於攻擊伺服器程序接受透過支援多路徑 TCP (MPTCP) 協定的網路通訊端連線的系統。 MPTCP 支援可以針對每個網路套接字單獨啟用,這是 Go 標準庫的預設設置,從 Go 1.24(2025 年 2 月)開始啟用。
準備好的漏洞利用程式可用於任何用 Go 語言編寫的伺服器應用程序,包括 Caddy HTTP 伺服器,只要它能夠向其創建的監聽套接字發送網路封包即可。由於該漏洞直接存在於 IPv4 協定堆疊中,並非 MPTCP 特有,因此可以創建不依賴 MPTCP 的漏洞利用程序,但目前尚未有此類漏洞利用程序被演示。例如,在處理套接字遷移請求時可以利用此漏洞,該請求在配置中使用了 `net.ipv4.tcp_migrate_req=1` 參數或在使用帶有 `BPF_SK_REUSEPORT_SELECT_OR_MIGRATE` 選項的 eBPF 程式時可用。
此漏洞是由 TCP 連線建立過程中同時處理重傳的 SYN 請求時出現的競爭條件所造成的。由於 `tcp_v4_syn_recv_sock()` 函數透過引用而非複製的方式將參數從 `ireq->ireq_opt` 結構傳遞給子套接字,因此在某些情況下,包含套接字參數的 `inet_opt` 和 `ireq_opt` 結構的記憶體已被釋放,但仍在使用相關的記憶體選項被釋放(釋放後的記憶體選項)。
遠端攻擊是透過發送一系列時間同步的網路請求來實現的。此漏洞利用方法適用於使用位址隨機化(KASLR)的內核,但命中競爭條件視窗需要相當長的時間,並且需要大量的重試。由於錯過競爭條件視窗只會導致握手,而不會導致核心崩潰,因此可以進行無限次嘗試,從而簡化了攻擊過程。在漏洞利用原型中,攻擊大約耗時一小時——48分鐘用於確定記憶體佈局,另外5分鐘用於組織程式碼執行。
目前尚無任何變通方法能夠保證徹底修復此漏洞——安裝核心更新是唯一可靠的選擇。該問題始於核心。 Linux 4.4 版本已修復,並在 5.10.272、5.15.223、6.1.190、6.6.159、6.12.113、6.18.56、7.2.10 和 7.3 版本中修復。您可以在以下頁面查看各發行版中漏洞修復的狀態: Debian, UbuntuSUSE/openSUSE、RHEL、Gentoo、Arch
軟呢帽。
針對某些特定利用方法的應對措施(這些方法並不能完全阻止漏洞),建議停用 MPTCP 支援並將核心 sysctl 參數 net.ipv4.tcp_migrate_req 設定為 0:
sysctl -w net.mptcp.enabled=0
sysctl -w net.ipv4.tcp_migrate_req=0
要確定係統中是否存在使用套接字的進程
對於 MPTCP,您可以使用以下命令:
ip mptcp 端點顯示
IP MPTCP 限制顯示
要在 Go 程式中停用 MPTCP 支持,請使用「multipathtcp=0」標誌,該標誌可以透過設定「GODEBUG=multipathtcp=0」環境變數來實現。若要在編譯時停用 MPTCP 支持,請將「godebug multipathtcp=0」新增至 go.mod 檔案。在應用程式程式碼中,您可以使用 net.Dialer.SetMultipathTCP 和 net.ListenConfig.SetMultipathTCP 函數來停用 MPTCP。
除了討論的問題之外,Anthropic 還宣布了一系列核心中可本地利用的漏洞。 LinuxOpenBSD 和 FreeBSD 允許 root 使用者存取系統並逃逸出隔離容器;Chrome 和 Safari 中的漏洞會導致在開啟特製網頁時在系統上執行程式碼;核心漏洞 Windows導致崩潰;平台漏洞 Android該攻擊允許你繞過螢幕鎖定,無需解鎖設備即可存取個人資訊和照片(該攻擊已在 Google Pixel 9 智慧型手機上演示)。
補充:
- 在 nginx 中,從 1.29.7 版本開始就提供了為監聽網路套接字啟用 IPPROTO_MPTCP 選項的功能,但預設未使用。
- 在 Lighttpd 中,從 1.4.76 版本開始,可以選擇啟用 MPTCP。
- 在 Apache httpd 中,支援 MPTCP 的補丁於 2024 年添加到 Apache httpd 2.5-HEAD 分支中。
- systemd 版本 257 新增了透過套接字啟動時啟用 MPTCP 的支援。
- 在 Apache Traffic Server 中,從 9.2.4 版本開始支援啟用 MPTCP 的選項。
- 從 HAProxy 3.1.0 版本開始,可以使用選項「mptcp{,4,6}@」。 “。”
- 在 Traefik 中,從 2.11.26、3.4.2 和 v3.5.0-rc1 版本開始,預設啟用設定 IPPROTO_MPTCP 標誌。
- 在 Valkey DBMS 中,從 9.0.0 版本開始,可以使用“--mptcp”選項以及“mptcp yes”和“repl-mptcp yes”設定。
來源: opennet.ru
