Linux 核心漏洞 CVE-2026-98432:暫時封鎖與套用核心修補程式
CVE-2026-98432 是 Linux 核心漏洞,接受 IPv4 TCP 連線的核心程式碼會再次讀取已釋放的記憶體,Linux 核心 CVE 團隊將其評為 Critical。由於這是不需驗證即可從遠端攻擊的缺陷,我們將採用 Nginx 與 Apache 的 AlmaLinux 9.8 Lightsail 伺服器更新為修正後的核心套件並重新開機,再以執行中的核心版本確認修補。
1️⃣ Linux 核心漏洞 CVE-2026-98432:缺陷原理與影響範圍
當 TCP 連線請求(SYN)帶著 IPv4 選項進來時,核心為了在回應(SYN-ACK)中送回這些選項,會把副本與等待中的連線一起保存。連線建立後,這份副本不會複製,而是直接交給新連線的通訊端。
若在這段期間用戶端重新送出 SYN,另一顆 CPU 可能正以相同選項建立 SYN-ACK。這時新連線關閉、核心立刻釋放選項記憶體,正在建立 SYN-ACK 的程式碼就會讀取已釋放的記憶體,也就是 use-after-free。
這段程式碼在應用程式看到連線之前、核心處理連線請求的階段執行。因此不論連接埠是由哪個服務開啟,只要以 IPv4 TCP 監聽,攻擊就能在沒有憑證的情況下從遠端觸及,分數依 CVSS 3.1 為 9.8。
此缺陷從 Linux 4.4 起就存在,因此大多數 Linux 伺服器都受影響。AWS 說明在 Lightsail 藍圖中列出 AlmaLinux 9、CentOS Stream 9、Debian、openSUSE Leap、Ubuntu 以及 Amazon Linux 2、Amazon Linux 2023。AlmaLinux 公告將 8、9、10 全部列為對象,Lightsail 的 WordPress 與 LAMP 等應用程式藍圖也在 Debian 或 Ubuntu 上執行,因此同樣受影響。
不使用 Linux 核心的 FreeBSD 與 Windows Server 不在影響範圍內。
關閉 MPTCP(Multipath TCP)的伺服器也需要修補。公開的攻擊鎖定的是開著 MPTCP 監聽器的伺服器,但缺陷本身位於一般的 IPv4 TCP 程式碼,所以 AlmaLinux 公告也表示沒有 MPTCP 的系統同樣必須修正。
修正後的核心會在 RCU 寬限期(grace period)過後才釋放選項記憶體,因此在另一顆 CPU 讀取選項建立 SYN-ACK 的期間,記憶體會保留下來。
2️⃣ 確認 Linux 核心版本:是否為修正後的核心
是否需要修補取決於執行中的核心版本,因此在更新前,我們先確認了發行版與核心版本。
cat /etc/os-releaseNAME="AlmaLinux"
VERSION="9.8 (Olive Jaguar)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.8"
PLATFORM_ID="platform:el9"
PRETTY_NAME="AlmaLinux 9.8 (Olive Jaguar)"
ANSI_COLOR="0;34"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:almalinux:almalinux:9::baseos"
HOME_URL="https://almalinux.org/"
DOCUMENTATION_URL="https://wiki.almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"
ALMALINUX_MANTISBT_PROJECT="AlmaLinux-9"
ALMALINUX_MANTISBT_PROJECT_VERSION="9.8"
REDHAT_SUPPORT_PRODUCT="AlmaLinux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.8"
SUPPORT_END=2032-06-01uname -r5.14.0-687.55.1.el9_8.x86_64nft --version-bash: nft: command not found發行版為 AlmaLinux 9.8,執行中的核心為 5.14.0-687.55.1.el9_8。暫時封鎖規則要用的 nft 指令也不存在,代表 nftables 套件尚未安裝。
rpm -q kernelkernel-5.14.0-611.30.1.el9_7.x86_64
kernel-5.14.0-687.49.1.el9_8.x86_64
kernel-5.14.0-687.55.1.el9_8.x86_64[rpm -q kernel] 會列出已安裝的核心,但在重新開機前,實際運作的只有 [uname -r] 顯示的那一個。請將此版本與 AlmaLinux 公告中的修正版本比較。
| 發行版 | 修正後的核心版本(此版本以上) |
|---|---|
| AlmaLinux 8 | kernel-4.18.0-553.182.1.el8_10 |
| AlmaLinux 9 | kernel-5.14.0-687.64.1.el9_8 |
| AlmaLinux 10 | kernel-6.12.0-211.72.1.el10_2 |
5.14.0-687.55.1.el9_8 低於 AlmaLinux 9 的修正版本 5.14.0-687.64.1.el9_8,因此需要更新。
為了確認攻擊是否有路徑可觸及,我們檢查了正在監聽的 IPv4 TCP 連接埠與 MPTCP 狀態。
ss -lnt4State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 511 0.0.0.0:443 0.0.0.0:*
LISTEN 0 511 0.0.0.0:80 0.0.0.0:*sysctl net.mptcp.enablednet.mptcp.enabled = 0ss -lnMState Recv-Q Send-Q Local Address:Port Peer Address:Port在所有位址(0.0.0.0)上監聽的 IPv4 TCP 連接埠,是網頁伺服器的 80、443 與 SSH 的 22。
[net.mptcp.enabled] 為 0,也沒有 MPTCP 通訊端,因此公開攻擊所用的 MPTCP 路徑是關閉的。但缺陷是從一般的 IPv4 TCP 連線開始,所以監聽三個 IPv4 連接埠的伺服器仍需要修補。
3️⃣ 更新 Linux 核心:七個核心套件與重新開機
更換核心前,我們先在 Lightsail 主控台為執行個體建立了手動快照。Lightsail 沒有選擇開機核心的畫面,若伺服器無法以新核心啟動,就要用這份快照建立新的執行個體來還原。
🔲 Lightsail 快照模擬器
Linux 기반 블루프린트를 사용하는 인스턴스에 취약점(CVE-2026-98432)이 발생할 수 있습니다. 인스턴스가 영향을 받는지 확인하고 사용 중인 Linux 배포판에 최신 보안 업데이트를 적용하는 것이 좋습니다.
(us-east-1a)
스냅샷을 생성하여 인스턴스, 해당 시스템 디스크 및 연결된 디스크를 백업할 수 있습니다.
일일 스냅샷 시간은 오전 5:00 GMT+0입니다.Amazon은 가장 최근의 스냅샷 7개를 저장합니다.
🔲 確認 Linux 核心更新與重新開機
我們用 dnf 清單確認了儲存庫中提供的修正版核心版本。
dnf --showduplicates list available kernel kernel-core kernel-modules kernel-modules-core kernel-tools kernel-tools-libs kernel-headerskernel.x86_64 5.14.0-687.64.1.el9_8 baseos
kernel-core.x86_64 5.14.0-687.64.1.el9_8 baseos
kernel-modules.x86_64 5.14.0-687.64.1.el9_8 baseos
kernel-modules-core.x86_64 5.14.0-687.64.1.el9_8 baseos
kernel-tools.x86_64 5.14.0-687.64.1.el9_8 baseos
kernel-tools-libs.x86_64 5.14.0-687.64.1.el9_8 baseos
kernel-headers.x86_64 5.14.0-687.64.1.el9_8 appstreamdnf download kernel-core-5.14.0-687.64.1.el9_8只把 kernel-core 套件檔下載到目前的資料夾,不進行安裝。
rpm -Kv kernel-core-5.14.0-687.64.1.el9_8.x86_64.rpm V4 RSA/SHA256 Signature, key ID b86b3716: OKrpm -qp --changelog kernel-core-5.14.0-687.64.1.el9_8.x86_64.rpm | grep CVE-2026-98432- ipv4: free inet_opt and ireq_opt after an RCU grace period (CKI Backport Bot) [RHEL-295635] {CVE-2026-98432}簽章為 OK,變更記錄中有修正 CVE-2026-98432 的一行。我們在 11 月 3 日確認的 dnf 安全性公告(updateinfo)中還沒有這個 CVE,因此用 [dnf upgrade --security] 無法取得這個核心。
因此我們指定版本,安裝了七個核心套件。
dnf install -y kernel-5.14.0-687.64.1.el9_8 kernel-core-5.14.0-687.64.1.el9_8 kernel-modules-5.14.0-687.64.1.el9_8 kernel-modules-core-5.14.0-687.64.1.el9_8 kernel-tools-5.14.0-687.64.1.el9_8 kernel-tools-libs-5.14.0-687.64.1.el9_8 kernel-headers-5.14.0-687.64.1.el9_8================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
kernel x86_64 5.14.0-687.64.1.el9_8 baseos 1.1 M
kernel-core x86_64 5.14.0-687.64.1.el9_8 baseos 17 M
kernel-modules x86_64 5.14.0-687.64.1.el9_8 baseos 40 M
kernel-modules-core x86_64 5.14.0-687.64.1.el9_8 baseos 31 M
Upgrading:
kernel-headers x86_64 5.14.0-687.64.1.el9_8 appstream 2.6 M
kernel-tools x86_64 5.14.0-687.64.1.el9_8 baseos 1.3 M
kernel-tools-libs x86_64 5.14.0-687.64.1.el9_8 baseos 1.1 M
Removing:
kernel x86_64 5.14.0-611.30.1.el9_7 @baseos 0
kernel-core x86_64 5.14.0-611.30.1.el9_7 @baseos 64 M
kernel-modules x86_64 5.14.0-611.30.1.el9_7 @baseos 33 M
kernel-modules-core x86_64 5.14.0-611.30.1.el9_7 @baseos 27 M
Transaction Summary
================================================================================
Install 4 Packages
Upgrade 3 Packages
Remove 4 Packages
Total download size: 94 M
Complete!新安裝了四個核心套件,kernel-headers、kernel-tools、kernel-tools-libs 三個套件已升級,其他套件沒有變動。由於保留最多三個已安裝核心的 [installonly_limit=3] 設定,最舊的 5.14.0-611.30.1.el9_7 的四個套件被移除,從下載到完成花了 74 秒。
AlmaLinux 公告所提供的官方標準指令,會重新取得儲存庫資訊後,升級所有有更新的套件。
sudo dnf clean metadata && sudo dnf upgrade由於核心以外的套件也會一起升級,升級整個發行版版本的步驟請參閱 Alma Linux 更新:LightSail 上的 9.4 → 9.8。
新核心要重新開機後才會生效。
systemctl reboot伺服器重新啟動後,我們依序確認了執行中的核心、已安裝的核心與預設核心。
uname -r5.14.0-687.64.1.el9_8.x86_64rpm -q kernelkernel-5.14.0-687.49.1.el9_8.x86_64
kernel-5.14.0-687.55.1.el9_8.x86_64
kernel-5.14.0-687.64.1.el9_8.x86_64grubby --default-kernel/boot/vmlinuz-5.14.0-687.64.1.el9_8.x86_64伺服器在重新開機指令後不到 1 分鐘就重新啟動,執行中的核心與下次開機使用的預設核心都已改為 5.14.0-687.64.1.el9_8。先前的核心 5.14.0-687.55.1.el9_8 仍保留著,若新核心出問題,可以把預設核心改回去。
| 項目 | 修補前 | 修補後 |
|---|---|---|
| 執行中的核心(uname -r) | 5.14.0-687.55.1.el9_8 | 5.14.0-687.64.1.el9_8 |
| 預設核心(grubby) | 5.14.0-687.55.1.el9_8 | 5.14.0-687.64.1.el9_8 |
| 已安裝的核心(rpm -q kernel) | 5.14.0-611.30.1.el9_7, 5.14.0-687.49.1.el9_8, 5.14.0-687.55.1.el9_8 | 5.14.0-687.49.1.el9_8, 5.14.0-687.55.1.el9_8, 5.14.0-687.64.1.el9_8 |
4️⃣ 重新開機前的暫時封鎖:nft 規則與限制
無法立即重新開機時,可以在安裝修正後的核心之前,用暫時規則封鎖觸發缺陷的封包。本章的指令並非我們實際執行,而是依據官方標準(AlmaLinux 與 AWS 公告)。
採用 Nginx 與 Apache 的 AlmaLinux 9.8 Lightsail 伺服器幾分鐘就能完成重新開機,因此我們沒有做暫時封鎖,直接更新了核心。
此缺陷只會由帶有 IPv4 選項的 TCP 連線請求觸發。一般流量幾乎不使用 IPv4 選項,因此只封鎖帶選項的 IPv4 TCP 封包,平常的連線仍能照常維持。
sudo dnf install -y nftablesnft 指令包含在與 firewalld 一起安裝的 nftables 套件中。若伺服器沒有這個指令,請先安裝。
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建立一個 nftables 表,在 prerouting 階段封鎖 IPv4 標頭長度大於 5 的 TCP 封包,也就是帶有 IPv4 選項的封包。這是 AlmaLinux 在 8、9、10 上測試過的規則,可與 firewalld 一起使用,執行多次也安全。
sudo nft list table ip cve_2026_98432確認規則是否已加入;輸出中的 counter 值是目前為止封鎖的封包數。
sudo nft delete table ip cve_2026_98432以修正後的核心重新開機後,用這個指令刪除該表。
此規則在重新開機後會消失,若在安裝修正後的核心之前就重新開機,請再次執行建立表的指令。
有依賴 IPv4 選項之應用程式的伺服器不適用此規則。使用 IPv4 選項所攜帶之 CIPSO 安全標籤(NetLabel)的網路就是一例,預設設定中不會使用。
此規則會保護主機,以及透過主機接收流量的容器(Podman 與 Docker 的預設方式)。同一主機上容器之間互相傳送的流量可能繞過此規則。
在 Debian、Ubuntu、openSUSE 上,請使用 AWS 說明中的一行 iptables 規則。AlmaLinux 9 與 CentOS Stream 9 的核心沒有此規則使用的 u32 比對模組,因此請改用上方的 nft 規則。
sudo iptables -I INPUT 1 -p tcp -m u32 --u32 '0>>24&0x0f=6:15' -j DROPu32 運算式會讀取 IPv4 標頭長度欄位,值大於 5 就是帶有 IPv4 選項的封包。安裝修正後的核心後,請用下方指令刪除此規則。
sudo iptables -D INPUT -p tcp -m u32 --u32 '0>>24&0x0f=6:15' -j DROP在 Lightsail 防火牆關閉未使用的連接埠,並將其餘連接埠限縮為只允許可信任的 IP 位址,也是 AWS 說明一併建議的做法。
🔢 FAQ & 推薦內容
ℹ️ 聯盟行銷說明
本站內容包含聯盟行銷連結。訪客透過這些連結購買商品或服務時,本站會從賣家獲得佣金。在這個過程中,購買者支付的金額(遇到活動折扣時金額會降低↓)並不會因此提高。刊登的價格、折扣與庫存資訊以撰寫當時為準,可能與實際情況不同,購買前請向賣家做最後確認。商品的挑選與評價依本站自訂的標準撰寫,是否支付佣金不會影響介紹順序或評價內容。