GRUB2 開機載入程式中的嚴重漏洞可讓您繞過 UEFI 安全開機

在 GRUB2 開機載入程式中 透露 8個漏洞。 最危險 一個問題 (CVE-2020,10713),其代號為 BootHole, 給一個機會 繞過 UEFI 安全啟動機制並安裝未經驗證的惡意軟體。 此漏洞的特殊性在於,要消除該漏洞,僅更新 GRUB2 是不夠的,因為攻擊者可以使用具有經過數位簽章認證的舊易受攻擊版本的可啟動媒體。 攻擊者不僅可以破壞 Linux 的驗證過程,還可以破壞其他作業系統的驗證過程,包括 Windows.

該問題只能透過更新系統來解決 憑證吊銷列表 (dbx,UEFI 撤銷清單),但在這種情況下,在 Linux 上使用舊安裝媒體的能力將會遺失。 一些設備製造商已經在其韌體中包含了更新的吊銷證書清單;在此類系統上,只能在 UEFI 安全啟動模式下載入 Linux 發行版的更新版本。

為了消除發行版中的漏洞,您還需要更新安裝程式、引導程式、核心包、fwupd 韌體和 shim 層,為它們產生新的數位簽章。 使用者將需要更新安裝映像和其他可啟動媒體,並將憑證撤銷清單 (dbx) 載入到 UEFI 韌體中。 在將 dbx 更新到 UEFI 之前,無論作業系統中是否安裝了更新,系統仍然容易受到攻擊。

脆弱性 造成的 緩衝區溢出,可被利用在開機過程中執行任意程式碼。
該漏洞在解析grub.cfg 設定檔的內容時發生,該檔案通常位於ESP(EFI 系統分區)中,具有管理員權限的攻擊者可以對其進行編輯,而不會破壞簽署shim 和GRUB2 執行檔的完整性。 因為 錯誤 在配置解析器程式碼中,致命解析錯誤YY_FATAL_ERROR的處理程序僅顯示警告,但並未終止程式。 由於需要對系統進行特權訪問,因此可以降低漏洞風險;但是,如果您可以實體存取裝置(如果可以從您自己的媒體啟動),則可能需要引入隱藏的 Rootkit。

大多數 Linux 發行版都使用小型 墊片層,由 Microsoft 進行數位簽章。 該層使用自己的憑證驗證 GRUB2,這使得發行版開發人員不必讓每個核心和 GRUB 更新都經過 Microsoft 認證。 此漏洞允許透過更改 grub.cfg 的內容,在成功驗證 shim 後、載入作業系統之前的階段執行程式碼,在安全啟動模式處於活動狀態時嵌入信任鏈並獲得完全控制進一步的啟動過程,包括載入另一個作業系統、修改作業系統元件和繞過保護 鎖定.

GRUB2 開機載入程式中的嚴重漏洞可讓您繞過 UEFI 安全開機

GRUB2 中的其他漏洞:

  • CVE-2020,14308 — 由於沒有檢查 grub_malloc 中分配的記憶體區域的大小而導致緩衝區溢位;
  • CVE-2020,14309 - grub_squash_read_symlink 中的整數溢出,這可能導致資料寫入超出分配的緩衝區;
  • CVE-2020,14310 - read_section_from_string 中的整數溢出,這可能導致寫入資料超出分配的緩衝區;
  • CVE-2020,14311 - grub_ext2_read_link 中的整數溢出,這可能導致資料寫入超出分配的緩衝區;
  • CVE-2020,15705 — 允許您在安全啟動模式下直接啟動期間載入未簽署的內核,無需填充層;
  • CVE-2020,15706 — 在執行時間重新定義函數時存取已釋放的記憶體區域(釋放後使用);
  • CVE-2020,15707 — initrd 大小處理程序中的整數溢位。

修補程式包更新已發布 Debian, Ubuntu, RHEL и SUSE。 對於 GRUB2 建議 補丁集。

來源: opennet.ru

添加評論