GLSA-202208-23 : Xen: Multiple Vulnerabilities

high Nessus Plugin ID 164116

語系:

描述

遠端主機受到 GLSA-202208-23 中所述的弱點影響 (Xen:多個弱點)

- x86 上的 IOMMU 頁面對應問題 [其 CNA 資訊記錄與多個 CVE 有關;文字說明了哪些方面/弱點對應於哪個 CVE] 。AMD 和 Intel 都允許 ACPI 表格指定不應轉譯的記憶體區域,這通常表示這些位址應在不作變更的情況下完成轉譯。雖然這些通常是裝置特定的 ACPI 屬性,但也可以將其指定為套用至一系列裝置,甚至是所有裝置。在所有具有此類區域的系統上,Xen 無法防止來賓機復原/取代此類對應 (CVE-2021-28694)。在 AMD 系統上,韌體指定了不連續的範圍,本應排除的中間範圍也將進行身分對應 (CVE-2021-28695)。此外,在 AMD 系統上,從來賓機解除指派實體裝置時,身分對應會保留在原位,來賓機可繼續存取不應再有存取權的記憶體範圍 (CVE-2021-28696)。(CVE-2021-28694、CVE-2021-28695、CVE-2021-28696)

- 在取消配置來賓機獲得某些 Xen 擁有的記憶體頁面的存取權後,授予表格 v2 狀態頁面仍可存取。大多數此類頁面在其整個生命週期內都會保持與來賓機的配置/關聯關係。但是,當來賓機從 v2 切換 (返回) 到 v1 時,授權表 v2 狀態頁面會解除配置。釋放這類頁面需要 Hypervisor 知道這些頁面在來賓機中的具體對應位置。Hypervisor 只追踪來賓機空間中的一個使用,但來賓機請求插入這些頁面的對應的爭用要求,可能導致其中任何一個頁面變成在多個位置進行對應。
當從 v2 切換回 v1 時,來賓機會保留對已釋放頁面的存取權,而且可能會將其重新用於其他目的。(CVE-2021-28697)

- 授權表處理中的長時間執行迴圈 為正確監控資源使用,Xen 會維護網域可能建立的與其他網域提供的授權進行對應的授權對應資訊。在執行特定動作的過程中,Xen 會反覆使用所有這類項目,包括不再使用的項目,以及可能已建立但從未使用過的一些項目。如果指定網域的項目數量足夠大,則整個表格的反覆使用進程可能會佔用 CPU 太久,進而造成其他網域缺乏 CPU,或造成 Hypervisor 本身出現問題。請注意,網域可能會對應自己的授權,即
此情況下不需要涉及多個網域。然而,一對合作的來賓機可能會造成更嚴重的影響。(CVE-2021-28698)

- 不充分的 grant-v2 狀態框架陣列邊界檢查 v2 授權表格介面將授權屬性與授權狀態分開。也就是說,在此模式下操作時,來賓有兩個表格。因此,來賓也需要能夠擷取可用來存取新狀態追蹤表的位址。對於 x86 上的 32 位元來賓,因為 32 位元和 64 位元的介面結構配置通常不同,所以必須進行要求轉譯。轉譯取得授權狀態表格框架編號的要求時,涉及轉譯框架編號的結果陣列。由於用於執行轉譯的空間有限,轉譯層會將轉譯空間內的陣列容量告知核心函式。但遺憾的是,核心函式只會強制陣列邊界低於指定值的 8 倍,如果需要儲存足夠的框架編號,還會在可用空間之外寫入。(CVE-2021-28699)

- xen/arm:dom0less domUs 沒有記憶體限制 dom0less 功能允許系統管理員直接從 Xen 建立多個無權限的網域,遺憾的是,由於尚未設定記憶體限制,
這將允許網域配置超出系統管理員原本設定的記憶體。
(CVE-2021-28700)

- XENMAPSPACE_grant_table 處理中的另一個爭用情形,允許來賓機存取某些 Xen 擁有的記憶體頁面。大多數此類頁面在其整個生命週期內都會保持與來賓機的配置/關聯關係。
但是,當來賓機從 v2 切換 (返回) 到 v1 時,授權表 v2 狀態頁面會解除配置。釋放這類頁面需要 Hypervisor 強制執行任何平行要求都不會導致新增此類頁面的對應到來賓機。如果缺少強制執行,則將允許來賓機保留對已釋放頁面的存取權,並且可能將其重新用於其他目的。遺憾的是,在準備 XSA-379 時,並未註意到與此相似的問題。(CVE-2021-28701)

- 針對未正確取消指派 RMRR 的 PCI 裝置,系統中的某些 PCI 裝置可能指派保留記憶體區域 (透過保留記憶體區域報告 (RMRR) 指定)。這些裝置通常用於平台工作,例如傳統 USB 模擬。如果將此類裝置傳遞給來賓,則在來賓關機時,裝置不會正確解除指派。未正確解除指派的這些裝置的 IOMMU 組態最終指向已釋放的資料結構,包括 IO 頁表。來自裝置的後續 DMA 或中斷將有無法預測的行為,涵蓋範圍從 IOMMU 錯誤到記憶體損毀。(CVE-2021-28702)

- 某些 VT-d IOMMU 可能無法在共用分頁表模式下運作。出於效率原因,對於二級轉譯 (EPT),程式可在 CPU 和 IOMMU 之間共用 (在合適的硬體上,也會預設共用) 位址轉譯結構 (分頁表)。這些分頁表目前設定一律為 4 級深度,但 IOMMU 可能只需要使用 3 個分頁表層級。在此類組態中,必須先去除 lop 層級表格,然後再將 root 表格的位址插入硬體分頁表基址暫存器中。共用分頁表時,Xen 會錯誤地略過此去除作業。因此,來賓可以寫入分頁表項目。 (CVE-2021-28710)

- 在某些 Intel(R) 處理器中,多核心共用緩衝區若清理不完全,經驗證的使用者則可能透過本機存取造成資訊洩漏。(CVE-2022-21123)

- 在某些 Intel(R) 處理器中,微架構填補緩衝區若清理不完全,經驗證的使用者則可能透過本機存取造成資訊洩漏。(CVE-2022-21125)

- 對於某些 Intel(R) 處理器,特定的特殊暫存器寫入作業若清理不完全,經驗證的使用者則可能透過本機存取造成資訊洩漏。(CVE-2022-21166)

- arm:guest_physmap_remove_page 未移除 p2m 對應。若項目沒有有效的位元集,則用於從 Arm 上的客體 p2m 分頁表移除一或多個項目的函式 (mfn 設定為 INVALID_MFN 的 p2m_remove_mapping、guest_physmap_remove_page 和 p2m_set_entry) 並未實際清除分頁表項目。當虛擬機器上的作業系統使用 set/way 快取維護指示時,可能會有沒有有效位元集的有效分頁表項目。例如,客體發出 set/way 快取維護指令,然後呼叫 XENMEM_decrease_reservation hypercall 以將記憶體頁面傳回給 Xen,即使在 Xen 開始將這些頁面用於其他目的之後,此客體仍可能保留對這些頁面的存取權。(CVE-2022-23033)

- 在取消對應時,PV 客體中的 Xen 可能發生 DoS。為解決 XSA-380,在 PV 客體啟用 IOMMU 的情況下,爲授權對應引入了參照計數。PV 客體可要求兩種形式的對應。當兩者同時用於任何個別的對應時,可以分兩個步驟要求取消對應。此類對應的參照計數會錯誤地遞減兩次。偵測到計數器反向溢位,進而觸發 Hypervisor 錯誤檢查。(CVE-2022-23034)

- 傳遞裝置 IRQ 的清理不充分。與公開給 x86 HVM 客體的實體裝置相關聯的 IRQ 管理涉及反覆作業,特別是在客體使用裝置後進行清理時。如果在呼叫此清理時中斷尚未停止,則程式可能會排程重試清理作業。當涉及多次中斷時,可能會錯誤地略過此重試排程。同時,指標可能會被清除 (導致 NULL 指標解除參照) 和釋放 (導致釋放後使用),而其他程式碼會繼續假設它們有效。(CVE-2022-23035)

- x86 pv:取得 typeref 時會發生爭用情形。除了一般參照計數外,Xen 還會爲頁面保留類型參照計數。此配置用於保留確保 Xen 安全性所需的不變量,例如:
PV 來賓可能沒有對頁面表格的直接寫入存取權;更新需要 Xen 稽核。但遺憾的是,用於取得類型參照的邏輯存在爭用情形,程式可過早發出安全清除 TLB 命令並建立一個視窗,來賓可在寫入操作被禁止前在該視窗中重新建立讀取/寫入對應。(CVE-2022-26362)

- x86 pv:未充分注意非一致對應 [此 CNA 資訊記錄與多個 CVE 有關,文中說明了哪些方面/弱點對應哪個 CVE。] 除了一般的參照計數,Xen 還會保留頁面的類型參照計數。此配置用於維護確保 Xen 安全所需的不變量,例如 PV 來賓可能沒有對頁面表格的直接寫入存取權;
更新需要 Xen 稽核。但遺憾的是,Xen 的安全邏輯並未考慮由 CPU 引起的快取不一致性;CPU 可造成快取內容與主記憶體中內容不同的情況。在這種情況下,Xen 的安全邏輯可能會錯誤判斷頁面內容是否安全。
(CVE-2022-26363、CVE-2022-26364)

請注意,Nessus 並未測試這些問題,而是僅依據應用程式自我報告的版本號碼作出判斷。

解決方案

所有 Xen 使用者皆應升級至最新版本:

# emerge --sync # emerge --ask --oneshot --verbose >=app-emulation/xen-4.15.3 所有 Xen 工具使用者皆應升級至最新版本:

# emerge --sync # emerge --ask --oneshot --verbose >=app-emulation/xen-tools-4.15.3

另請參閱

https://security.gentoo.org/glsa/202208-23

https://bugs.gentoo.org/show_bug.cgi?id=810341

https://bugs.gentoo.org/show_bug.cgi?id=812485

https://bugs.gentoo.org/show_bug.cgi?id=816882

https://bugs.gentoo.org/show_bug.cgi?id=825354

https://bugs.gentoo.org/show_bug.cgi?id=832039

https://bugs.gentoo.org/show_bug.cgi?id=835401

https://bugs.gentoo.org/show_bug.cgi?id=850802

Plugin 詳細資訊

嚴重性: High

ID: 164116

檔案名稱: gentoo_GLSA-202208-23.nasl

版本: 1.2

類型: local

已發布: 2022/8/15

已更新: 2022/8/15

風險資訊

VPR

風險因素: High

分數: 7.3

CVSS v2

風險因素: High

基本分數: 7.2

時間分數: 5.6

媒介: CVSS2#AV:L/AC:L/Au:N/C:C/I:C/A:C

時間媒介: CVSS2#E:POC/RL:OF/RC:C

CVSS 評分資料來源: CVE-2022-26364

CVSS v3

風險因素: High

基本分數: 8.8

時間分數: 7.9

媒介: CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

時間媒介: CVSS:3.0/E:P/RL:O/RC:C

CVSS 評分資料來源: CVE-2021-28710

弱點資訊

CPE: cpe:2.3:o:gentoo:linux:*:*:*:*:*:*:*:*, p-cpe:2.3:a:gentoo:linux:xen:*:*:*:*:*:*:*, p-cpe:2.3:a:gentoo:linux:xen-tools:*:*:*:*:*:*:*

必要的 KB 項目: Host/local_checks_enabled, Host/Gentoo/release, Host/Gentoo/qpkg-list

可輕鬆利用: No known exploits are available

修補程式發佈日期: 2022/8/14

弱點發布日期: 2021/8/5

參考資訊

CVE: CVE-2021-28698, CVE-2021-28695, CVE-2021-28699, CVE-2021-28694, CVE-2021-28700, CVE-2021-28697, CVE-2021-28696, CVE-2021-28701, CVE-2021-28702, CVE-2021-28710, CVE-2022-23033, CVE-2022-23034, CVE-2022-23035, CVE-2022-21166, CVE-2022-26362, CVE-2022-26363, CVE-2022-26364, CVE-2022-21123, CVE-2022-21125