GLSA-202402-07:Xen:多個弱點

high Nessus Plugin ID 189976

語系:

說明

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

- 在取消配置 (第二次) 來賓機獲得某些 Xen 擁有的記憶體頁面的存取權後,授予表格 v2 狀態頁面仍可存取。大多數此類頁面在其整個生命週期內都會保持與來賓機的配置/關聯關係。但是,當來賓機從 v2 切換 (返回) 到 v1 時,授權表 v2 狀態頁面會解除配置。釋放這類頁面需要 Hypervisor 知道這些頁面在來賓機中的具體對應位置。Hypervisor 只追踪來賓機空間中的一個使用,但來賓機請求插入這些頁面的對應的爭用要求,可能導致其中任何一個頁面變成在多個位置進行對應。當從 v2 切換回 v1 時,來賓機會保留對已釋放頁面的存取權,而且可能會將其重新用於其他目的。此錯誤已透過清理 Xen 4.14 中的程式碼修正,並作為 XSA-378 修正的先決條件反向移植至安全性支援的 Xen 分支。(CVE-2021-28703)

- 未對齊的 GFN 上的 PoD 作業 [他的 CNA 資訊記錄與多個 CVE 有關;文字說明了哪些方面/弱點對應於哪些 CVE。] x86 HVM 和 PVH 來賓可在 populate-on-demand (PoD) 模式下啟動,以便為它們提供稍後輕鬆指派更多記憶體的方式。允許來賓透過 hypercall 控制個別頁面的某些 P2M 方面。這些 hypercall 可作用於透過頁面順序指定的頁面範圍 (導致頁面數量為 2 的冪)。PoD 的某些 hypercall 實作並未強制基本頁面框架編號與指定順序適當對齊,但 PoD 處理中涉及的某些程式碼實際上會做出此類假設。這些作業包括 XENMEM_decrease_reservation (CVE-2021-28704) 和 XENMEM_populate_physmap (CVE-2021-28707),但後者只能由控制來賓的網域使用,即取消權限的 qemu 或虛設網域。
(修補程式 1,結合了這兩個問題的修正。)此外,當指定的頁面順序不是 4k、2M 或 1G (CVE-2021-28708,修補程式 2) 時,處理 XENMEM_decrease_reservation 也會觸發主機當機。 (CVE-2021-28704、CVE-2021-28707、CVE-2021-28708)

- x86 T 上部分成功的 P2M 更新問題[他的 CNA 資訊記錄與多個 CVE 有關;
文字說明了哪些方面/弱點對應於哪些 CVE。] x86 HVM 和 PVH 來賓可在 populate-on-demand (PoD) 模式下啟動,以便為它們提供稍後輕鬆指派更多記憶體的方式。允許來賓透過 hypercall 控制個別頁面的某些 P2M 方面。這些 hypercall 可作用於透過頁面順序指定的頁面範圍 (導致頁面數量為 2 的冪)。在某些情況下,hypervisor 會透過將要求分割成更小的區塊來執行這些要求。某些 PoD 情況下的錯誤處理不足,特別是未正確考慮某些作業僅部分成功。有兩個程式碼路徑受到影響,即頁面刪除 (CVE-2021-28705) 和新頁面的插入 (CVE-2021-28709)。(我們可提供一個已經修正這兩個問題的修補程式。) (CVE-2021-28705、CVE-2021-28709)

- 來賓可能會超出其指定的內存限制:當來賓可以擁有接近 16TiB 的記憶體時,可能會發出超級調用以將其記憶體分配額增加到超出管理員設定的上限數額。這是以 32 位元精確度完成計算的結果 (有可能出現溢位)。其之後只會是與既有上限比較的溢位 (因此很小) 數字。(CVE-2021-28706)

- 拒絕原因:請勿使用此候選版本編號。ConsultIDs:無。原因:此候選版本的 CNA 未使用候選版本。注意:無。(CVE-2022-23816)

- IBPB 可能無法阻止 pre-IBPB 分支目標指定傳回分支預測,這可能引致資訊洩漏。(CVE-2022-23824)

- 分支預測器中的別名可能造成部分 AMD 處理器預測錯誤的分支類型,這可能導致資訊洩漏。(CVE-2022-23825)

- 臟 vram 追蹤和索引標籤記錄臟超級調用之間存在活躍交互。XEN_DMOP_track_dirty_vram 激活記錄臟模式(Xen 4.9 之前版本中稱為「HVMOP_track_dirty_vram」)後,正在進行的日誌臟超級調用處於活躍狀態。適當定時的 XEN_DMOP_track_dirty_vram 呼叫可啟用已變更記錄,而另一個 CPU 則仍在拆除與先前啟用的記錄變更模式 (XEN_DOMCTL_SHADOW_OP_OFF) 相關的結構。這是因為兩項作業之間缺少互斥鎖定,導致在已釋放的插槽中新增項目,進而造成記憶體洩漏。
(CVE-2022-26356)

- VT-d 網域 ID 清理中的爭用 Xen 網域 ID 最多 15 位元寬。VT-d 硬體可能只允許使用少於 15 位元的寬度來保留將實體裝置與特定網域相關聯的網域 ID。因此,Xen 網域 ID 在內部會對應至較小的值範圍。清理內務處理結構時存在爭用情形,進而允許洩漏 VT-d 網域 ID 並繞過清除。
(CVE-2022-26357)

- IOMMU:RMRR (VT-d) 與 unity map (AMD-Vi) 處理問題 [此 CNA 資訊記錄與多個 CVE 相關;文字說明了哪些方面/弱點對應於哪個 CVE。] 系統中的某些 PCI 裝置可能會被指派用於 Intel VT-d 或 AMD-Vi 的 Unity 對應範圍的保留記憶體區域 (透過保留記憶體區域報告 (RMRR) 指定)。這些裝置通常用於平台工作,例如傳統 USB 模擬。由於這些區域的確切用途不明,因此一旦與此類區域相關聯的裝置啟用后,這些區域的對應必須仍可由裝置持續存取。已違反此需求。來自裝置的後續 DMA 或中斷可能有無法預測的行為,涵蓋範圍從 IOMMU 錯誤到記憶體損毀。(CVE-2022-26358、CVE-2022-26359、CVE-2022-26360、CVE-2022-26361)

- 啟用 SMT 時,某些 AMD 處理器可能會在 SMT 模式切換後使用同級執行緒的目標推測執行指令,這可能會導致資訊洩漏。(CVE-2022-27672)

- 在某些依賴微架構的情況下,錯誤訓練的傳回指令分支預測允許使用者執行任意推測程式碼。(CVE-2022-29900)

- 第 6 至 8 代 Intel 微處理器受到新的 Spectre 變體影響,該變體能夠略過核心中的 retpoline 緩解措施造成任意資料洩漏。具有非特權使用者存取權的攻擊者可劫持傳回指令,在某些依賴微架構的情況下執行任意推測程式碼。(CVE-2022-29901)

- P2M 集區釋放可能花費太長時間。支援來賓的第二層級位址轉譯的 P2M 集區可能很大。因此,在沒有中介先佔檢查的情況下,其釋放時間可能超過合理所需時間。到目前為止,缺少對先佔必要性的檢查。(CVE-2022-33746)

- Arm:第二層索引標籤表的記憶體消耗沒有限制。例如,某些動作需要從來賓的 P2M (實體到機器) 對應中移除頁面。當使用大型頁面來對應第二階段索引標籤表中的來賓頁面時,此類移除作業可能會導致記憶體配置 (以個別較小的對應取代大型對應)。這些記憶體配置取自全域記憶體集區。惡意來賓可能會透過操控自己的 P2M 對應,造成全域記憶體集區耗盡。
(CVE-2022-33747)

- 可轉移授權複製處理中的鎖定順序反轉。作為 XSA-226 的一部分,在錯誤處理路徑上插入了一個遺漏的清理呼叫。這樣做時,並未注意到鎖定需求。因此,相互授予可轉移授權的兩個合作來賓可造成彼此巢狀鎖定,但順序相反。若在所涉及的授權複製作業之間時機適當,這可能會導致 CPU 鎖定。(CVE-2022-33748)

- XAPI 開啟檔案限制 DoS 網路上未經驗證的用戶端可能造成 XAPI 達到其檔案描述符號限制。這會造成 XAPI 無法接受其他 (受信任) 用戶端的新要求,並封鎖 XAPI 執行任何需要開啟檔案描述符號的工作。
(CVE-2022-33749)

- Xenstore:來賓可損毀 xenstored。由於 XSA-115 若修正中有一個錯誤,惡意來賓可造成 xenstored 在錯誤路徑中建立節點期間使用錯誤的指標,導致 xenstored 損毀或 xenstored 中的記憶體損毀,進而引致進一步破壞。輸入錯誤路徑可由來賓控制,例如透過超出每個網域最大節點的配額值來控制。(CVE-2022-42309)

- Xenstore:來賓可建立孤立的 Xenstore 節點。在導致錯誤的交易內建立多個節點時,惡意來賓可在 Xenstore 資料庫中建立孤立的節點,這是因為發生錯誤後的清理作業不會移除已建立的所有節點。在此情況之後提交交易時,可將沒有有效父項的節點固定於資料庫中。(CVE-2022-42310)

- Xenstore:來賓可造成 Xenstore 不釋放暫存記憶體。處理來賓的要求時,xenstored 可能需要暫時配置大量記憶體。只有在要求完全完成後,才會釋放此記憶體。只有在來賓從 Ring 頁面讀取要求的回應訊息後,才會認為要求已完成。因此,未讀取回應的來賓可造成 xenstored 無法釋放暫存記憶體。這可導致記憶體不足,進而造成 xenstored 拒絕服務 (DoS)。(CVE-2022-42319)

- Xenstore:來賓可取得對於已刪除網域的 Xenstore 節點的存取權。Xenstore 節點的存取權限以 domid 爲基礎。網域刪除後,可能剩下具有存取權的 Xenstore 節點,其中包含已移除網域的 domid。這通常沒有問題,因為稍後寫入此類節點時,這些存取權項目會得到更正。建立新網域時有一個短暫的時間範圍,期間與新網域具有相同 domid 的舊網域的存取權仍會被視為有效,這會導致新網域能夠存取原本應該由已移除的網域存取的節點。發生此情況的前提是,在透過 dom0 將新建立的網域引入 Xenstore 之前,另一個網域需要寫入此節點。(CVE-2022-42320)

- Xenstore:來賓可透過耗盡堆疊造成 Xenstored 損毀。Xenstored 對某些 Xenstore 作業使用遞回 (例如,刪除 Xenstore 節點的子樹狀結構)。使用足夠深的巢狀層級時,這可導致 xenstored 上的堆疊耗盡,造成 xenstored 損毀。(CVE-2022-42321)

- Xenstore:合作的來賓可建立任意數量的節點。[此 CNA 資訊記錄與多個 CVE 有關;文字說明了與 CVE 對應的方面/弱點。] 修正 XSA-322 後,被移除網域擁有的所有 Xenstore 節點都將修改為由 Dom0 擁有。因此,兩個惡意來賓共同運作,可以建立任意數量的 Xenstore 節點。具體作法可能是網域 A 允許網域 B 寫入網域 A 的本機 Xenstore 樹狀結構。然後,網域 B 可以建立許多節點並重新開機。網域 B 建立的節點現在由 Dom0 所擁有。由於 Dom0 的節點數不受 Xenstore 配額限制,因此透過不斷重複此程序,可以建立任意數量的節點。(CVE-2022-42322、CVE-2022-42323)

- Oxenstored 32->31 位元整數截斷問題。Ocaml 中的整數為帶正負號的 63 位元或 31 位元精確度。
Ocaml Xenbus 程式庫從環中取出 C uint32_t,並將其直接轉換為 Ocaml 整數。在 64 位元 Ocaml 版本中,這沒有問題,但在 32 位元版本中,它會截斷最高有效位元,然後在其餘部分中造成未帶正負號/帶正負號的混淆。這樣又可將負值提供給預期為非負值的邏輯,進而引發意外的例外狀況。未適當處理意外的例外狀況,可造成處理程序嘗試將錯誤封包移出 xenstore 環 (並且失敗) 的忙碌迴圈。(CVE-2022-42324)

- Xenstore:來賓可透過交易建立任意數量的節點。[此 CNA 資訊記錄與多個 CVE 相關;文字說明了與 CVE 對應的方面/弱點。] 如果已在交易中建立節點,而後又在同一個交易中將其刪除,則交易將會終止並顯示錯誤。只有在交易完成時處理已刪除的節點時才會遇到此錯誤,因此系統將在不更新計量資訊的情況下部分執行交易。這讓惡意來賓可以建立任意數量的節點。
(CVE-2022-42325, CVE-2022-42326)

- x86: 在支援虛擬化 APIC 存取功能的 Intel 系統上發生來賓之間意外共用記憶體,來賓可將本機 APIC 移出 xAPIC 模式,藉此讀取和寫入全域共用的 xAPIC 頁面。存取此共用頁面會繞過兩個來賓之間預期的隔離措施。
(CVE-2022-42327)

- 來賓可透過軟重設造成 Xenstore 損毀 當來賓發出軟重設 (例如,執行 kexec) 時,libxl 型 Xen 工具堆疊通常會執行 XS_RELEASE Xenstore 作業。xenstored 中的錯誤會導致 xenstored 損毀。任何其他使用 XS_RELEASE 的情形都將受到相同的影響。(CVE-2022-42330)

- x86: 32 位元 SYSCALL 路徑中的推測弱點。由於原始 Spectre/Meltdown 安全性工作 (XSA-254) 中的疏忽,有一個 entrypath 過晚執行其推測安全性動作。
某些組態中存在未受保護的 RET 指令,攻擊者可對齊執行多種推測式攻擊。 (CVE-2022-42331)

- x86 shadow plus log-dirty 模式中的釋放後使用弱點。在需要主機協助位址轉譯但未提供硬體協助索引標籤 (HAP) 的環境中,Xen 會在所謂的影子模式下執行來賓。
影子模式會維護用於影子索引標籤表和輔助資料結構的記憶體集區。為了移轉或快速檢視來賓,Xen 會另外以所謂的 log-dirty 模式執行這些作業。log-dirty 追蹤所需的資料結構屬於上述輔助資料的一部分。為了將錯誤處理工作保持在合理的範圍內,對於可能需要記憶體配置的作業,影子模式邏輯會預先確保有足夠的記憶體可用於最壞的情況。
遺憾的是,雖然在可能需要建立新影子的程式碼路徑上正確考慮了索引標籤表記憶體,但並未將 log-dirty 基礎結構的需求納入考量。因此,程式可立即再次釋放剛建立的影子索引標籤表,而其他程式碼仍假設這些索引標籤表仍處於已配置狀態,所以仍在存取這些索引標籤表。(CVE-2022-42332)

- x86/HVM 釘選快取屬性錯誤處理。[此 CNA 資訊記錄與多個 CVE 有關;文字說明哪些方面/弱點對應於哪些 CVE。] 為允許對具有傳遞裝置的 HVM 來賓進行快取控制,有一個可明確覆寫預設值的介面,此介面原本會採用其他方式。此介面雖然不會暴露給受影響的來賓本身,但它是專門針對控制此類來賓的網域而存在的。因此,此介面可能會被非完整權限的實體利用,例如在 Dom0 中執行取消權限的 qemu,或在所謂的 stub-domain 中執行的 qemu。在此情形下,問題在於此類受控制區域的數量不受限制 (CVE-2022-42333),此類區域的安裝和移除未正確序列化 (CVE-2022-42334)。(CVE-2022-42333、CVE-2022-42334)

- x86 分頁任意指標解除參照 在需要主機協助位址轉譯但未提供硬體協助索引標籤 (HAP) 的環境中,Xen 會在所謂的影子模式下執行來賓。
由於對用於處理陰影頁面的 Hypervisor 常式檢查過於寬鬆,成功傳遞 PCI 裝置的來賓可能造成 Hypervisor 存取部分在來賓控制之下的任意指標。(CVE-2022-42335)

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

解決方案

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

# emerge --sync # emerge --ask --oneshot --verbose >=app-emulation/xen-4.16.6_pre1

另請參閱

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

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

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

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

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

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

https://security.gentoo.org/glsa/202402-07

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

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

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

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

Plugin 詳細資訊

嚴重性: High

ID: 189976

檔案名稱: gentoo_GLSA-202402-07.nasl

版本: 1.1

類型: local

已發布: 2024/2/4

已更新: 2024/2/4

支援的感應器: Nessus

風險資訊

VPR

風險因素: High

分數: 7.3

CVSS v2

風險因素: Medium

基本分數: 6.9

時間分數: 5.1

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

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

CVSS v3

風險因素: High

基本分數: 8.8

時間分數: 7.7

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

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

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

弱點資訊

CPE: cpe:/o:gentoo:linux, p-cpe:/a:gentoo:linux:xen

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

可輕鬆利用: No known exploits are available

修補程式發佈日期: 2024/2/4

弱點發布日期: 2021/11/24

參考資訊

CVE: CVE-2021-28703, CVE-2021-28704, CVE-2021-28705, CVE-2021-28706, CVE-2021-28707, CVE-2021-28708, CVE-2021-28709, CVE-2022-23816, CVE-2022-23824, CVE-2022-23825, CVE-2022-26356, CVE-2022-26357, CVE-2022-26358, CVE-2022-26359, CVE-2022-26360, CVE-2022-26361, CVE-2022-27672, CVE-2022-29900, CVE-2022-29901, CVE-2022-33746, CVE-2022-33747, CVE-2022-33748, CVE-2022-33749, CVE-2022-42309, CVE-2022-42310, CVE-2022-42319, CVE-2022-42320, CVE-2022-42321, CVE-2022-42322, CVE-2022-42323, CVE-2022-42324, CVE-2022-42325, CVE-2022-42326, CVE-2022-42327, CVE-2022-42330, CVE-2022-42331, CVE-2022-42332, CVE-2022-42333, CVE-2022-42334, CVE-2022-42335