Linux核心致命漏洞曝光:
駭客輕鬆奪取電腦控制權

本報告旨在提供對最近發現的 Linux 核心漏洞 CVE-2025-0927 的詳細分析,該漏洞存在於 HFS+ 檔案系統驅動程式中,構成一個關鍵 的越界寫入漏洞。成功攻擊此漏洞可能導致本機權限提升。漏洞的根本原因在於 hfs_bnode_read_key 函式在處理 B-tree 節點時未能正確驗證 Key Size 的邊界條件。此漏洞影響 Linux 核心版本至 6.12.0,包括特定的 Ubuntu 發行版。主要緩解 (Mitigation) 策略包含進行由 Ubuntu 等發行版提供的 kernel update[1]。

Linux核心致命漏洞曝光:駭客輕鬆奪取電腦控制權| 資訊安全新聞

引言

作業系統的核心作為系統安全的基石,核心層面的任何漏洞都可能對系統的整體安全性構成嚴重威脅。Linux 核心作為廣泛使用的關鍵 元件,一直是安全研究人員和惡意行為者 (Malicious actors) 的焦點。CVE-2025-0927 是最近在 Linux 核心中發現的安全缺陷,具體位於 HFS+ 檔案系統驅動程式中[1]。本報告主要提供對 CVE-2025-0927 的深入技術分析,評估其對受影響系統(特別是 Ubuntu)的潛在影響,並為安全分析師和系統管理員提供全面的緩解策略。此漏洞的最近發現,結合安全社群對其影響的持續討論,凸顯了提供詳細信息和安全建議的緊迫性[1]。

CVE-2025-0927 的技術深入探討

  • 漏洞描述
    CVE-2025-0927 被明確定義為一個越界寫入 (Out-of-bounds write)漏洞[1] 。越界寫入發生在程式試圖將資料寫入超出分配緩衝區記憶體邊界時,可能導致相鄰資料的損壞或任意程式碼的執行。此漏洞位於 Linux 核心的 HFS+ 檔案系統驅動程式中[1]。其最顯著的潛在後果是本機權限提升,這意味著在受影響系統上具有有限權限的攻擊者可能利用它獲得 root 或管理員級別的存取權限[1]。這種權限提升漏洞通常被認為是高嚴重性問題,因為它們允許攻擊者完全控制受損系統並進行進一步的惡意攻擊。
  • 根本原因分析
    此漏洞的具體位置在 HFS+ 驅動程式中的hfs_bnode_read_key函式,該函式負責處理 B-tree 節點[1, 2]。根據分析,該漏洞是一個在處理這些 B-tree 節點時發生的緩衝區溢出(buffer overflow)[1, 2]。核心問題在於hfs_bnode_read_key函式對 B-tree 節點內 Key Size 的邊界條件驗證不足[1, 2]。這種驗證不足允許攻擊者在精心製作的 HFS+ 檔案系統中包含過大的 Key Size。當核心試圖使用有漏洞的函式讀取這些 Key 時,資料會被寫入超出分配緩衝區,導致溢出[1, 2]。值得注意的是,根據 SSD Secure Disclosure 報告[2],此漏洞自 2005 年初始 git 儲存庫構建1da177(對應於 Linux 核心版本 2.6.12-rc2)以來一直存在於 Kernel tree 中。允許權限提升的漏洞長期未被發現的事實突顯了核心安全性的複雜性,以及長期存在的缺陷可能難以檢測。這也可能表明過去在與 HFS+ 驅動程式相關的程式碼審查或測試過程中存在疏忽。SSD Secure Disclosure 報告[2]進一步闡述,原始開發者可能假設hfs_bnode_read_key 函式只會在 Key Size 已驗證為合理限制的情況下被呼叫。這種假設可能在程式碼中造成了盲點,因為它未考慮精心製作的檔案系統繞過這些假設檢查的可能性。這強調了在處理資料的每個階段進行加強輸入驗證的重要性,特別是在處理來自檔案系統資料等外部輸入時。
  • 受影響的系統和版本
    此漏洞影響 Linux 核心版本至 6.12.0[1, 2, 3]。已確認 Ubuntu 22.04 與 Linux 核心 6.5.0-18-generic 為受影響系統[1, 2]。此外,多個 Ubuntu 安全通知 (USNs)[4, 5, 6, 7, 8, 9, 10, 11, 12] 提供了更全面的受影響 Ubuntu 版本列表以及包含修復的特定核心版本。Debian Linux 的特定版本(<=5.10.223-1, <=5.10.234-1, <=6.1.123-1, <=6.1.128-1, <=6.12.17-1)也被報導受影響[3]。

    大量的 Ubuntu 安全通知,包括 USN-7293-1, USN-7323-1, USN-7325-1, USN-7325-2, USN-7325-3[5, 6, 7, 8, 9, 10, 11, 12], USN-7328-3 和 USN-7331-1,表明此漏洞對各種 Ubuntu 版本和核心類型(包括通用、AWS、Azure、NVIDIA 等)的廣泛影響。如此大量的通知強調了檢查每個 Ubuntu 系統上運行的特定核心版本以確定其漏洞狀態和適當更新路徑的重要性。這也突顯了 Ubuntu 在解決此問題上的積極回應。 Ubuntu CVE 頁面[4] 提到不同 Ubuntu 版本的不同狀態,如「已修復」、「有漏洞,正在調查中」和「此版本不受影響」。此外,它指出對於較舊的 LTS 版本(如 14.04 和 16.04)的修復通常透過 Ubuntu Pro (ESM) 提供,表明安全更新的支援生命週期有所不同。這對於使用較舊 Ubuntu 版本的組織至關重要。他們可能需要訂閱 Ubuntu Pro 以接收必要的安全更新,或者應考慮升級到當前支援的版本以確保持續的安全更新。
  • 受影響的 Ubuntu 版本和更新狀態概要
    Ubuntu 版本 受影響的核心版本
    (部分列表)
    已修復的核心版本
    (部分列表)
    相關的 Ubuntu
    安全通知
    Ubuntu 22.04 LTS "Jammy" 6.5.0-18-generic 和其他 5.15.0-1079.86 和其他 USN-7325-1,
    USN-7325-2
    Ubuntu 24.04 LTS "Noble" 尚未發布 6.8.0-1024.26 和其他 USN-7323-1,
    USN-7325-2
    Ubuntu 20.04 LTS "Focal" 5.4.0-208 和其他 5.15.0-134.145 和其他 USN-7293-1,
    USN-7331-1
    Ubuntu 18.04 LTS "Bionic" 4.15.0-1178.191 和其他 4.15.0-1178.191 和其他 USN-7293-1
    Ubuntu 16.04 LTS "Xenial" 4.4.0-264.298 和其他 4.4.0-264.298 和其他 USN-7293-1
    Ubuntu 24.10 "Oracular" 尚未發布 6.11.0-1010.11 和其他 USN-7323-1
    Ubuntu (AWS) 未詳細說明 6.8.0-1024.26 和其他 USN-7325-1
    Ubuntu (Azure) 未詳細說明 5.15.0-1082.91 和其他 USN-7328-3
    Ubuntu (NVIDIA) 未詳細說明 6.8.0-1023.26 和其他 USN-7325-2,
    USN-7325-3

    請注意,此表格僅列出了部分受影響和已修復的核心版本,建議系統管理員查閱相關的 Ubuntu 安全通知以獲取完整信息。

  • 攻擊機制
    攻擊此漏洞的一般方法涉及攻擊者製作一個特殊的 HFS+ 檔案系統[1]。無特權掛載(Unprivileged mount) 能力在此至關重要,因為它在桌面環境中通常預設啟用,並可利用回環掛載進行攻擊。這允許即使是具有有限權限的用戶也能掛載惡意檔案系統[1]。根據 gbhackers.com[1] 的信息,典型的攻擊步驟如下:
    • 製作惡意 HFS+ 檔案系統: 攻擊者創建一個 HFS+ 檔案系統,包含特定的屬性,旨在當hfs_bnode_read_key 函式試圖處理 B-tree 節點時觸發緩衝區溢出。這可能涉及操縱檔案系統 Metadata 中的Key Size[1]。
    • 掛載檔案系統: 攻擊者使用允許無特權用戶執行掛載操作的工具(例如 mount命令)掛載此精心製作的檔案系統,通常利用Loopback device[1]。
    • 觸發漏洞: 掛載惡意檔案系統並隨後試圖存取或處理其內容(特別是 B-tree 節點)的行為觸發了有漏洞的hfs_bnode_read_key 函式。惡意檔案系統中的超大 Key 導致該函式將資料寫入超出分配緩衝區[1]。文章提到將 Attribute B-tree 的 root 設置為 null 並創建具有擴展屬性的檔案作為特定技術[1],這可能有助於觸發有漏洞的程式碼路徑。
    • Heap Spraying(可選但可能):gbhackers.com 的原始文章提到使用 Heap Spraying 來繞過 Kernel Address Space Layout Randomization (KASLR)。 Heap Spraying 是一種技術,攻擊者試圖用可預測的資料填充記憶體的大部分,以增加溢出覆蓋記憶體中特定目標的可能性,即使啟用了位址隨機化[1]。
    • 權限提升: 透過精心製作惡意資料並可能使用 Heap Spraying ,攻擊者的目的為覆蓋敏感的核心資料結構,甚至將惡意程式碼注入核心記憶體。這種操縱可能導致攻擊者獲得提升的權限,有效地控制系統[1]。

    由於需要本機存取和掛載檔案系統的能力(即使是無特權的),此漏洞更可能被已獲得目標系統某種程度存取權限的攻擊者攻擊。雖然在某些場景下遠端攻擊可能在理論上是可能的(例如,透過允許檔案上傳或其他遠程檔案系統掛載的漏洞),但所述的攻擊方法主要針對本機權限提升。提到特定的攻擊步驟,例如操縱 B-tree root 和擴展屬性[1],為安全研究人員和事件回應者提供了有價值的信息,以理解攻擊向量並可能開發檢測機制。這些細節可用於創建安全監控工具的簽章或規則,以識別試圖利用此漏洞的行為。

影響和後果

CVE-2025-0927 的最顯著和嚴重影響是本地權限提升的潛在可能性,允許具有有限用戶權限的攻擊者以 root 或管理員級別權限執行命令 [1]。此外,由於越界寫入引起的記憶體損壞,可能導致拒絕服務 (DoS) 狀況,導致系統崩潰或不穩定。這在多個 Ubuntu 安全通知中都有提及 [4, 5, 6, 7, 8, 9, 10, 11, 12]。如果攻擊者能精確控制溢出期間寫入的數據,則可能在核心空間內執行任意程式碼。這將使攻擊者完全控制受影響的系統 [4, 5, 6, 7, 8, 9, 10, 11, 12]。重要的是要強調,如前所述,所述的攻擊方法需要掛載特別製作的 HFS+ 檔案系統的能力,這通常需要本機存取系統或利用無特權掛載功能的能力 [1]。權限提升和拒絕服務的潛在可能性使此漏洞特別危險。權限提升允許未授權的操作和進一步入侵,而 DoS 可能中斷關鍵服務和操作。組織在評估此漏洞帶來的風險時需要考慮機密性和可用性影響。HFS+ 檔案系統主要與較舊的 macOS 系統相關,這可能使一些人認為此漏洞對 Linux 環境的相關性有限。然而,核心對各種檔案系統(包括 HFS+)的支援以及透過無特權掛載觸發漏洞的可能性意味著廣泛的 Linux 系統可能面臨風險,無論它們是否主動使用 HFS+ 檔案系統。這強調了理解攻擊面而不是僅基於受影響組件的感知相關性來忽視漏洞的重要性。有漏洞程式碼的存在和可行的攻擊向量足以構成風險。

緩解和修復策略

  • 執行核心更新
    最關鍵的緩解策略是立即將 Linux 核心更新至由相應發行版提供的更新版本 [1, 2]。特別是運行 Ubuntu 的用戶,強烈建議查閱 Ubuntu 發布的官方安全建議 (USNs) [4, 5, 6, 7, 8, 9, 10, 11, 12],以識別針對其 Ubuntu 版本解決 CVE-2025-0927 的特定核心版本。對於 Ubuntu 系統,提供了使用 apt 套件管理器執行核心更新的一般指導(例如,sudo apt update && sudo apt upgrade)。強調確保已安裝並啟用更新後的核心版本(通常需要系統重啟)的重要性。對於其他 Linux 發行版,建議遵循其特定的更新程序並查閱其安全建議以獲取更新的核心版本。所有相關來源([1], [2], [1] 和眾多 Ubuntu 安全通知)一致且主要建議執行核心更新。這表明更新有漏洞的程式碼是消除風險的最直接和有效方式。核心更新包含核心開發者實施的特定修復,以解決 hfs_bnode_read_key 函數中的緩衝區溢出漏洞,從而防止越界寫入。
  • 安全最佳實踐
    建議對無特權掛載的使用極度謹慎。系統管理員應審查其系統設定,並在可能的情況下限制或禁用無特權掛載功能,特別是對於Loopback device,如果這些對於合法用戶工作流程不是絕對必要的話 [1]。建議實施更嚴格的存取控制和權限管理,以限制未授權用戶或程序掛載惡意檔案系統映像的可能性。鼓勵用戶不僅關注其特定 Linux 發行版的安全建議,還關注更廣泛的 Linux 核心社群和安全研究組織的安全建議。這種主動方法有助於領先於新興威脅並及時進行必要的緩解措施 [1]。加強一般安全最佳實踐,例如遵循最小權限原則(僅授予用戶和程序必要的權限)、保持所有系統軟體(不僅是核心)最新,並採用強健的端點安全解決方案也至關重要。限制無特權掛載 [1] 作為重要的縱深防禦 (Defense-in-depth) 措施。即使系統運行的是有漏洞的的核心版本,防止無特權用戶掛載惡意 HFS+ 檔案系統也能顯著減少攻擊面並阻礙攻擊。這種分層安全方法即使在執行更新之前或在立即無法更新的情況下也能提供保護。gbhackers.com 文章 [1] 提到隨著核心強化技術的進步,攻擊者正在適應使用更複雜的方法,例如跨快取(Cross-cache) 攻擊。這突顯了攻擊者和防禦者在核心安全領域的持續軍備競賽。強調了在核心內持續研究、開發和部署先進安全機制的必要性,以及安全專業人員跟上最新攻擊技術的重要性。

結論

本報告的主要發現重申,CVE-2025-0927 是 Linux 核心 HFS+ 驅動程式中的一個關鍵 越界寫入漏洞,可能導致本機權限提升、拒絕服務,甚至可能任意程式碼執行。立即執行由 Linux 發行版提供的核心更新,特別是 Ubuntu 在其安全通知中詳細說明針對受影響 Ubuntu 版本的修復,至關重要。建議實施主動安全措施,例如限制無特權掛載,以進一步減輕攻擊風險。總之,在面對不斷演變的威脅時,保持基於 Linux 的系統的安全性和完整性需要持續警惕、及時更新和採用強健的安全最佳實踐。