VmWare ESXi 6.7 U1 EP05 更新卡關之Operation Not Permitted


如果是圈內人的話,那我想ESXi 是什麼我就不介紹了。因為會找到這篇的,恐怕也都對ESXi也有一定的熟悉度才會來到此處。



先大概講一下EP : Express Patch:

相較於 Ux: Update x (e.g. Update 1-U1/Update 2-U2...)像是一個作業系統的Service Pack,EP像是普通時的小元件更新,更新的東西通常不多,但也不代表不重要。由於EP釋放的速度遠比Update快非常多(通常兩個月),如果對於資安要求相當嚴格的區域,EP是十分重要的,如EP05修補了CVE-2018-6981CVE-2018-6982。而對於系統管理者而言,EP也可以小幅度的修復一些奇怪的問題,以EP05來說,修復了PR 2228095 (部分SATA 磁碟與控制器可能會出現效能低落的情況)、PR 2141221 (vmWare 災難復原軟體可能會在複製虛擬機器時會導致錯誤)等等。

而對於台灣的GSN/TANet 來說,算是資安的高風險區,且在ESXi Version Tracker網站上也點明了EP05的急迫性為Critical。

如果懶得看原文的朋友,簡介一下這兩個CVE大概的影響:

CVE-2018-6981與CVE-2018-6982 到底影響了ESXi什麼 ?:

CVE-2018-6981: VNXNet 3 (vmWare新型的虛擬網路卡)程式中錯誤的讓客戶端作業系統(或虛擬機器)能存取還沒初始化的堆疊記憶體區塊,進而讓客戶端能夠對主機端(Host)執行指令。
CVE-2018-6982: 虛擬網路卡程式中還沒初始化的記憶體區塊可能會洩漏主機(Host)之部分資訊
基本上就是Virtual Machine Escape。
想看實際的例子請見: https://twitter.com/ChaitinTech/status/1057526019127676929
而如果想親自來玩點更危險的: https://github.com/my4andle/vmxnet3Hunter

Alright,那怎麼更新呢 ?

依照Paul Baren說的就是暫停所有虛擬機器、開維護模式、開ssh 然後執行幾個指令:
# esxcli network firewall ruleset set -e true -r httpClient (先開啟http可向外存取網路)
# esxcli software profile update -p ESXi-6.7.0-20181104001-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml (選擇要更新的目標 ESXi-6.7.0-20181104001-standard,而到底有哪些更新可以更新,請看這裡[url] *1)
# esxcli network firewall ruleset set -e false httpClient (完成更新後關閉http可向外存取網路,可做可不做)

完成後關維護模式、關ssh、啟動所有虛擬機器,Good。

結果:


連磁碟掛載都會錯誤 ??
原本以為是虛擬機器沒有關還是什麼東西占用到,重新檢查虛擬機器確定關閉完成、開維護
還是一樣....

只好把log全部抓出來看
/var/log/vmkernel.log 裡面有幾行引起了我的注意:

/var/log/esxupdate.log:


很多人會覺得奇怪的事情是: 我是root權限,哪裡來的Operation Not Permitted ? 應該是說身為Hypervisor 作業系統本身的目的是再於穩定的執行虛擬機器,vmWare透過Policy 禁止了很多行為: 像是連寫的script shell 執行都沒有辦法、除了esxcli能夠變更系統設定之外,無法私自更改任何/etc下的設定檔案… 所以看到這樣,除了拔硬碟刻意更改Policy不然無解。

上了Reddit,Stackoverflow 還是各種無解....

這個問題折騰了我將近兩個月,只能把問題轉個彎想:

如果我不能更新Profile,那我總可以只要更新vib 吧(因為Profile 都是大大小小的vib更新組成的) ?
於是:
# esxcli software vib update -d=https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml


看到這個畫面,雖然是Installation Complete… 但我的心裡想的是: 完蛋了,移除了這麼多東西,不過仔細看這些軟體的話,可以注意到是舊版的軟體被移除。但重新開機之後會是如何呢 ? 重裝 ?


更新成功了! 而且還更新到了最新的EP06版本
這是我第一次覺得我的手這麼冰,汗這麼多…

Anyway… 因為這是I(唉)T(踢)部門,出Trouble就準備唉踢吧… 唉。

參考資料:

[1]: VMware ESXi 6.7, Patch Release ESXi670-21811001
[2]: CVE-2018-6981
[3]: CVE-2018-6982
[4]: Chaitin Tech - GeekPwn 2018
[5]: VMWare ESXi Successful VM Escape at GeekPwn2018 Security Patch
[6]: VMWare Virtual Machine Escape Vulnerabilities CVE-2018-6981/6982 Threat Alert
[7]: my4andle/vmxnet3Hunter
[8]: TinkerTry IT@home - How to update any VMware ESXi Hypervisor to the latest using ESXCLI for easy download and install
[9]: VMware ESXi Patch Tracker
[10]: VMware ESXi Release and Build Number History
[11]: Unable to update ESXi 6.7U1 to ESXi-6.7.0-20181104001
[12]: ESXi (Standalone) Update Failed

留言

熱門文章