GRUB2 開機載入程式中已揭露 21 個漏洞,其中大多數會導致緩衝區溢出,並可用於繞過 UEFI 安全啟動驗證機制。目前這些問題僅透過補丁修復。您可以在以下頁面查看發行版中漏洞修復的狀態: Debian, UbuntuSUSE、RHEL、Fedora。修復 GRUB2 問題不僅僅是更新軟體包;還需要產生新的內部數位簽名,並更新安裝程式、引導程式、核心軟體包、fwupd 韌體和 shim 層。
已發現的漏洞:
- CVE-2024-45774:解析精心設計的 JPEG 影像時發生越界寫入。
- CVE-2024-45776、CVE-2024-45777:讀取特製的 mo 檔案時整數溢出,導致越界寫入。
- CVE-2024-45778、CVE-2024-45779:使用損壞的 BFS 檔案系統時會發生整數溢出,從而導致緩衝區溢出。
- CVE-2024-45780:處理特製的 tar 檔案時發生整數溢出,導致越界寫入。
- CVE-2024-45781、CVE-2025-0677:使用損壞的 UFS 檔案系統時會發生緩衝區溢位。
- CVE-2024-45782、CVE-2025-1125:安裝特製的 HFS 分割區時發生緩衝區溢位。
- CVE-2025-0622:模組操作期間的釋放後使用錯誤可能導致攻擊者執行程式碼。
- CVE-2025-0624:網路啟動中的緩衝區溢位。
- CVE-2025-0678:處理損壞的 Squash4 檔案系統時發生緩衝區溢位。
- CVE-2025-0684:操作 Reiserfs 中的符號連結時發生緩衝區溢位。
- CVE-2025-0685:操作 JFS 中的符號連結時發生緩衝區溢位。
- CVE-2025-0685:操作 ROMFS 中的符號連結時發生緩衝區溢位。
- CVE-2025-0689:處理經過特殊修改的 UDF 部分時發生緩衝區溢位。
- CVE-2025-0690:從鍵盤接收特製資料時發生緩衝區溢位。
- CVE-2025-1118:透過 Dump 指令繞過鎖定隔離模式並進行任意記憶體擷取。
- CVE-2024-45775:解析傳遞的參數時分配記憶體時缺乏錯誤代碼檢查,可能會導致 IVT(中斷向量表)資料損壞。
- CVE-2024-45783:掛載無效的 HFS+ 檔案系統時存取空指標。
最 Linux在 UEFI 安全啟動模式下,用於驗證啟動的發行版使用了一個由微軟進行數位簽章的小型 shim 層。該層使用其自身的憑證驗證 GRUB2,因此無需發行版開發者每次核心和 GRUB 更新時都通知微軟。 GRUB2 中的漏洞允許攻擊者在 shim 層驗證成功後、作業系統啟動前執行任意程式碼。這使得攻擊者能夠在啟用安全啟動時破壞信任鏈,並完全控制後續的啟動過程,例如啟動其他作業系統、修改作業系統元件或繞過鎖定保護。
為了在不撤銷數位簽章的情況下阻止漏洞,發行版可以使用 SBAT(UEFI 安全啟動高級目標)機制,大多數流行的發行版都為 GRUB2、shim 和 fwupd 實現了對該機制的支援。 LinuxSBAT是與微軟合作開發的,它透過向UEFI元件可執行檔添加額外的元資料來實現,這些元資料包括製造商、產品、元件和版本資訊。這些元資料經過數位簽名,可以單獨加入到UEFI安全啟動的允許或禁止元件清單中。
SBAT 可讓您阻止對各個元件版本號使用數位簽名,而無需撤銷安全啟動金鑰。 透過 SBAT 阻止漏洞不需要使用 UEFI 憑證撤銷清單 (dbx),而是在取代內部金鑰的層級執行以產生簽章並更新 GRUB2、shim 和發行版提供的其他開機工件。 在引入SBAT 之前,更新憑證撤銷清單(dbx,UEFI 撤銷清單)是完全阻止該漏洞的先決條件,因為無論使用何種作業系統,攻擊者都可以使用帶有舊的易受攻擊版本的GRUB2 的可啟動媒體,通過數位簽章認證,以破壞 UEFI 安全啟動。
來源: opennet.ru
