Linux 核心 KVM/arm64 子系統中的一個記憶體釋放後再利用 (Use-After-Free) 漏洞,讓精心設計的惡意虛擬機 (VM) 能夠突破沙箱限制,完全掌控底層的宿主主機。該漏洞被追蹤為 CVE-2026-46316,並被命名為 ITScape,它是首個公開記錄、針對 arm64 架構 KVM 的虛擬機逃逸攻擊程式,這項里程碑為所有 ARM 架構的多租戶雲端服務供應商設下了緊急修補的死線 。
此漏洞由研究員 Hyunwoo Kim 於 2026 年 6 月初揭露,且並非只是理論上的風險;一個完全可運作的概念驗證 (PoC) 攻擊程式已在 GitHub 上公開發布,它透過同時運作多個 vCPU 執行緒來觸發競爭條件,這些執行緒會發出 DISCARD ITS 指令,同時讓 LPI (Logical Processor Interrupt) 轉譯快取被設定為無效 。造成的衝擊是,攻擊者可從一個不受信任的 VM 內部完全攻陷宿主主機。
ITScape 是位於 KVM 核心內虛擬通用中斷控制器之中斷轉譯服務 (vGIC-ITS) 的一個競爭條件漏洞。vGIC-ITS 負責為 arm64 虛擬化訪客處理 LPI 轉譯。當某個轉譯快取條目需要被設為無效時,核心會走訪這些條目並釋放其引用計數。這個漏洞的成因在於,無效化函式會對 迭代器走訪到的每個條目 都減少一次引用計數,其中包含了那些已經被另一個並行操作從快取中移除的條目 。
這種重複減少引用計數的行為,造成了典型的記憶體釋放後再利用 (UAF):兩條執行路徑可能最終都操作到已被釋放的記憶體,讓攻擊者取得一個時間窗口來操控堆積,並最終在宿主核心層級劫持程式控制流程 。
漏洞的關鍵程式碼位於 vgic_its_invalidate_cache() 函式中,它會使用 xa_for_each() 走訪每個 ITS 的轉譯快取,並對迭代器指向的指標呼叫 vgic_put_irq(),而非對 xa_erase() 安全回傳的值進行操作。由於有多個執行緒可以在不同的鎖保護下進入此函式,因此攻擊者完全可以從虛擬機內部觸發這個競爭條件,只需混合進行 ITS 指令處理、寫入 GITS_CTLR 暫存器,以及清除 redistributor 中的 EnableLPIs 位元即可
。
雖然虛擬機逃逸漏洞相當罕見,但它們是虛擬化技術最危險的一類漏洞,因為它破壞了雲端運算所仰賴的隔離邊界。過往公開的 KVM 逃逸攻擊多針對 x86 架構,通常是透過 QEMU 或 AMD 特定的程式碼 。而 ITScape 是第一個展示如何從一個不具特權的 arm64 訪客虛擬機,直接透過核心內的 KVM 程式碼本身 進行突破的攻擊程式,完全無需仰賴用戶空間模擬器的錯誤
。
對於運行 AWS Graviton、Ampere Altra 或任何採用 arm64 KVM 主機的多租戶工作負載的雲端供應商來說,一個訪客虛擬機可以做到:
多數安全團隊對該漏洞的評分都超過 CVSS 9.0,反映其極度危急的嚴重性 。
存在漏洞的程式碼位於 LPI 轉譯快取的無效化路徑中。當核心需要清除快取條目時,它會使用 xa_for_each() 走訪 XArray 資料結構,並對每個條目呼叫 vgic_put_irq() 以釋放其引用計數。問題就出在 xa_for_each() 可能會回傳那些已經被並行操作(例如由另一個 vCPU 發出的 DISCARD ITS 指令)所清除的條目。此時,無效化迴圈仍會對那個已經被移除的條目減少引用計數,造成重複釋放,最終導致記憶體釋放後再利用 (UAF)
。
在此程式碼中曾有一個較早的漏洞 CVE-2024-26598,它部分解決了 LPI 轉譯快取命中路徑中的 UAF 問題,方法是在 vgic_its_check_cache() 釋放鎖之前先增加引用計數。然而,該修復並未涵蓋到無效化路徑,使得這個競爭條件可以透過不同的觸發序列被利用
。
上游的修補程式修改了 vgic_its_invalidate_cache() 函式,讓 vgic_put_irq() 僅對 xa_erase() 所回傳的值進行呼叫,而不是對迭代器走訪的每個條目都呼叫。修補程式的提交訊息寫道:"KVM: arm64: vgic-its: Drop the translation cache reference only for the erased entry"
。
因為 xa_erase() 會以原子操作方式移除並回傳舊的條目(若條目已不存在則回傳 NULL),此修復確保引用計數只會遞減一次,消除了重複釋放的時機窗口。該修補程式已於 2026 年 6 月上旬合入上游核心,並在約 2026 年 6 月 8 日至 10 日期間迅速被納入 6.x 穩定版系列核心
。包括 Red Hat、SUSE 與 Debian 在內的主要發行版,也已針對其支援的核心分支發布了回溯移植的修復
。
Hyunwoo Kim 於 2026 年 6 月 9 至 10 日前後,在 GitHub 上公開發布了一個可運作的攻擊程式。該存放庫包含了完整的原始程式碼、逐步重現說明,以及對利用技術的技術性描述 。此攻擊程式透過協調多個 vCPU 執行緒,使它們同時發出 DISCARD 指令與進行 LPI 轉譯快取查詢,精準地觸發記憶體釋放後再利用的狀況,從而達成宿主主機的程式碼執行。
由於可靠的概念驗證程式碼已經公開,意味著一般的漏洞掃描器與現實世界中的攻擊者,都能以最低限度的努力將此漏洞武器化,這將大幅縮短從漏洞揭露到實際攻擊活動開始之間的時間差。
若您營運多租戶的 arm64 KVM 基礎設施,例如 AWS Graviton、Ampere Altra 或任何類似平台,請將此視為需要立即反應的緊急修補週期。
Studio Global AI
Use this topic as a starting point for a fresh source-backed answer, then compare citations before you share it.
ITScape (CVE 2026 46316) 是 Linux KVM/arm64 的重大虛擬機逃逸漏洞,惡意虛擬機可藉此取得宿主主機的完整核心權限,且已有公開可用的攻擊程式碼。
ITScape (CVE 2026 46316) 是 Linux KVM/arm64 的重大虛擬機逃逸漏洞,惡意虛擬機可藉此取得宿主主機的完整核心權限,且已有公開可用的攻擊程式碼。 漏洞根源為 vGIC ITS 轉譯快取失效時發生的競爭條件,導致記憶體釋放後再利用 (Use After Free),影響 2024 年 4 月至 2026 年 6 月間建置的核心。
使用多租戶 ARM64 主機(如 AWS Graviton)的雲端業者必須立即修補;若無法立即更新,暫時緩解方案為對不受信任的訪客停用核心內虛擬 ITS 功能。