一、漏洞描述
QEMU Guest Agent(qga)類似于vmware中的 vmtools,相關安全報告顯示它的Windows版本安裝程序存在本地提權高危漏洞(CVE-2023-0664),攻擊者可利用該漏洞進行本地權限提升,獲得SYSTEM特權運行的交互式命令行界面,可能對各類云主機產品產生一定影響,漏洞詳細信息請見附件。它在windows中已qemu-ga服務和QEMU Guest Agent VSS Provider存在。
QEMU Guest Agent是一種QEMU虛擬機中的通用API,它提供了從主機到客戶機的一系列工具和服務,包括安全的虛擬機控制、信息傳遞和虛擬硬件監控,為客戶機提供更好的集成體驗。詳見:bug聲明。
The custom action uses cmd.exe to run VSS Service installation
and removal which causes an interactive command shell to spawn.
This shell can be used to execute any commands as a SYSTEM user.
Even if call qemu-ga.exe directly the interactive command shell
will be spawned as qemu-ga.exe is a console application and used
by users from the console as well as a service.As VSS Service runs from DLL which contains the installer and
uninstaller code, it can be run directly by rundll32.exe without
any interactive command shell.Add specific entry points for rundll which is just a wrapper
for COMRegister/COMUnregister functions with proper arguments.
漏洞影響:所有FedoraOS,windows 虛擬機2023年3月之前的qga版本;
相關鏈接:rockylinux
二、修復處理
1)官方修復說明
參見:QGA installer fixes; qemu-kvm 8.0.0-rc0中已經得到修復,如下所示:
qga/win32: Remove change action from MSI installer
qga/win32: Use rundll for VSS installation
qga/installer/qemu-ga.wxs | 11 +++++±----
qga/vss-win32/install.cpp | 9 +++++++++
qga/vss-win32/qga-vss.def | 2 ++
3 files changed,
安裝過程:
- 獲取軟件
- 安裝驅動 virto serial driver
- 更新 balloon 驅動 (需要區分 2012, win7 版本的使用方法)
- 安裝 qemu-ga
- 注冊并重啟 balloon 服務
- 測試可用性
注意事項:
1 balloon 服務只能夠運行在 administrator 用戶下
2 假如你只屬于 administrators 組, 那么請你切換成 administrator 用戶
3 假如 administrator 用戶被隱藏, 那么需要管理員身份運行 cmd , 輸入下面命令, 再切換用戶:net user administrator /active:yes
2) 軟件獲取
wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
yum install virtio-win
#iso 軟件存放在
ls /usr/share/virtio-win/virtio-win.iso
#或者
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso
//或直接下載: 2023-09-19 06:30 9.7M
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-qemu-ga/qemu-ga-win-106.0.1-1.el9/qemu-ga-x86_64.msi
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.240-1/virtio-win-gt-x64.msi#
3)安裝
#windows server 2012掛載 virtio-win.iso
#雙擊virtio-win.iso打開,其下有三個重要目錄:1)guest-agent (含安裝的二進制文件 (qemu-ga-x64.msi, qemu-ga-x86.msi)
2)vioserial ( virto-serail driver )
3)balloon (用于注冊 balloon 服務):只能超級管理員運行
1)如上圖所示,先更新 VIRTO-SERAIL DRIVER
即設備管理界面,更新 pci 簡單通訊控制器 (使用 vioserail 目錄中的驅動):
2)安裝 BALLOON PCI 驅動 (WINDOWS 2012)
完成后重啟云主機;
3) 雙擊安裝qemu-ga-x86.msi 或 qemu-ga-x64.msi后,啟動qemu guest agent 服務
4)啟動 BALLOON 服務 (WIN2012)
復制光盤中 balloon 目錄到 c:\Program Files,然后注冊 balloon 服務后 重啟,執行:
mkdir "c:\Program Files\balloon\2k12\amd64"
copy d:\balloon\2k12\amd64\* "c:\Program Files\balloon\2k12\amd64\."
cd c:\Program Files\balloon\2k12\amd64
blnsvr.exe -i
net stop balloonservice
net start balloonservice
5)建議找你的云廠商來協助升級,不建議自行升級qga版本
3、附錄
3.1 redhat和Fedora的關系
1)在centos8之前:
Fedora ==》RedHat ==》CentOS
簡單理解:Fedora 是RedHat的“試驗場”,很多新功能和特性先加入Fedora 穩定后再加入RedHat(收費),然后從RedHat再拉出CentOS(免費,培養用戶和生態)
2)在centos8這之后
Fedora ==》CentOS stream ==》 RedHat
上面是IBM(收購了redhat)取消CentOS,改為在Fedora 和 RedHat 之間滾動發布CentOS stream,這就使得Centos不再像之前那樣可靠穩定,適合生產環境了。