Januscape 揭 KVM 16 年舊洞:開咗 nested VM 嘅 x86 host 要快手補
Tech News

Januscape 揭 KVM 16 年舊洞:開咗 nested VM 嘅 x86 host 要快手補

圖片:via iThome — https://www.ithome.com.tw/news/177139
TechLab 編輯部(譯)·

風險關鍵係 guest 有冇 VMX/SVM,唔好等 CVSS 先排期

Januscape 係咩

iThome 報道,研究員 Hyunwoo Kim 公開 Januscape(CVE-2026-53359),指 Linux KVM x86 嘅 Shadow MMU 有 use-after-free。呢類 bug 麻煩在於 VM 隔離層本身出事:guest 入面嘅操作有機會影響 host kernel。公開 PoC 係令 host kernel panic;研究員亦話有受控環境可用嘅 full escape exploit,但冇放出街。NVD 喺 7 月 4 日收錄 CVE,到 7 月 7 日仍未有 CVSS,呢點代表而家要靠攻擊條件同資產暴露程度排優先次序。

Januscape 研究 repo 入面展示 PoC 觸發 host panic 嘅 demo 動畫

圖片:Hyunwoo Kim / Januscape GitHub

問題出喺邊

Januscape 打中 KVM/x86,即 Intel VMX 同 AMD SVM 都有份。技術上,Shadow MMU 重用 shadow page 時只睇 guest frame number,冇一齊核對 page 嘅 role;結果 direct split page 同 shadow guest page table 可能撞同一個 gfn,KVM 會拎錯舊 page 返嚟用,後面 rmap 清理就可能指住已經 free 咗嘅 shadow page。重點係漏洞喺 Linux kernel 入面嘅 KVM,唔屬於 QEMU device emulation 嗰層,換 QEMU 版本本身唔等於補咗呢個洞。

點解 nested virtualization 係關鍵

最易誤會嘅位係:現代 KVM host 平時用 EPT/NPT 加 TDP MMU,聽落好似避開 Shadow MMU。Januscape 借 nested virtualization 返入去;當 L1 guest 自己再開 L2 VM,L0 host 要用 software shadow L1 嘅 EPT/NPT,嗰條舊 Shadow MMU 路徑就會開返。即係話,要先查嘅係有冇畀 guest 用 VMX/SVM 開下一層 VM;host 硬件有幾新唔係保證。

邊啲環境最急

如果你只係租一部普通 VPS 跑 app,未必可以自己 patch host;你要睇 provider 點處理。同時,見到「cloud VM」幾個字唔等於即時中招:攻擊方一般要喺 guest 有 root,仲要 host 有 nested virtualization 暴露畀嗰部 VM。真正要今晚排 maintenance 嘅係自己管 x86 KVM compute host 嘅人,包括 Proxmox、OpenStack、libvirt/KVM、公司私有雲、homelab 對外借 VM,特別係同一部 host 放多個唔同信任邊界嘅 VM。

arm64 KVM 唔受 Januscape 呢條 x86 bug 影響,不過研究員早前另有 ITScape(CVE-2026-46316)講 arm64 KVM escape,未補嘅 arm64 host 都唔應該鬆懈。呢個分界好重要,因為公司盤點時成日只問「我哋有冇 KVM」,但今次優先次序要拆開 x86 + nested 同 arm64 另一條線睇,盤點時最好分開 x86 nested 同 arm64 另一條線,唔好一張 KVM 清單就算數。

Patch 要點

Kernel 修補唔係大改架構,核心係喺 kvm_mmu_get_child_sp() 重用 shadow page 前再比對 role.word。上游資料列出 7.1.3、6.18.38、6.12.95、6.6.144、6.1.177、5.15.211 同 5.10.260 已有修補;Debian tracker 亦顯示 trixie security 6.12.95-1 同 sid 7.1.3-1 標成 fixed。實務上唔好只睇 uname -r,RHEL、Ubuntu、Debian、Proxmox 呢類 distro 可能 backport 補丁但 package 版本名未必同 upstream 一樣,最穩陣係查 vendor advisory 或者 kernel package changelog。

冇 CVSS 都要排隊

就算 NVD 暫時未畀 CVSS,都唔應該當低危處理。我會咁排:第一批係 multi-tenant x86 KVM host + nested enabled + guest 唔可信;第二批係公司內部 VM 平台,但 developer 可以攞 root 同開 nested KVM;第三批係單租戶、冇 nested、guest 都係自己管嘅 lab。第一批應該優先 patch 同 reboot;第二批至少要關 nested 或者限制 VMX/SVM;第三批可以跟正常 kernel 更新,但都唔好拖到冇期。

未即刻 patch 點頂住

如果未可以即刻換 kernel,短期減風險係關 nested virtualization:Intel 睇 kvm_intel nested,AMD 睇 kvm_amd nested;libvirt、OpenStack、Proxmox 嗰邊亦要檢查有冇露出 vmx/svm CPU flag。關 host module parameter 只係其中一格,CPU mode host-passthrough、flavor extra specs、image metadata 都可能令 guest 見到 VMX/SVM。改前要諗 migration 同嗰啲真係要跑 nested workload 嘅 VM,例如 CI、Android emulator、lab hypervisor 呢類環境。

TechLab 睇法

呢個洞值得認真處理,但唔好亂嚇用戶。Januscape 嘅高危條件好清楚:x86 KVM、唔可信 guest、nested virtualization、host kernel 未補。對管 host 嘅人,下一步係盤點 nested exposure、確認 distro 補丁、排 reboot;對只租 VM 嘅人,重點係問 provider host kernel 同 nested policy,喺 guest 入面跑 scanner 幫唔到你確認 host 已補好。


參考來源

本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。

分享:WhatsAppThreadsTelegramFacebook