Qubes 作業系統存在一個漏洞,該漏洞利用虛擬機器管理程式嚴格隔離應用程式和作業系統元件(每類應用程式和系統服務都在獨立的虛擬機器中運行)。如果攻擊者攻破其中一個虛擬機,該漏洞允許其繞過隔離,在宿主機環境(Dom0)上執行任意命令,從而控制整個作業系統。當使用者使用「qvm-copy-to-vm」工具將檔案從宿主機器環境複製到攻擊者控制的虛擬機器時,該問題就會顯現。漏洞已在 qubes-core-dom0-linux 軟體包更新 4.3.22 中修復。
問題存在於 qvm-copy-to-vm 工具中,是由訪問時傳回的錯誤處理不當引起的。 虛擬機這個漏洞源自於 qvm-copy-to-vm 工具啟動 kdialog 或 zenity 程式來顯示錯誤訊息,它使用 system() 函數並將複製失敗的檔案資訊作為命令列選項之一。檔案名稱清理僅限於去除非 ASCII 字元和雙引號,而沒有檢查 shell 解釋的特殊字符,例如“`”和“$”。
從主機系統複製檔案完成後,虛擬機器處理器會傳送操作確認訊息,其中包含最後接收到的檔案名稱等資訊。攻擊方法是傳回錯誤代碼而非確認訊息,並指定一個包含命令解釋器可處理的特殊字元的檔案名,作為複製失敗的檔案。收到錯誤後,主機處理器會使用 `system()` 命令彈出一個包含錯誤文字的對話框,並將攻擊者在命令列中傳回的檔案名稱傳遞給該對話框(例如,指定「file`id`」將在主機上執行 `id` 命令)。
來源: opennet.ru
