微軟提交程式碼為Linux核心6.13帶來混亂Intel、AMD緊急救火
據報道,Linux核心6.13遭遇了一次嚴重的危機差點翻車,起因是微軟貢獻的程式碼出現了問題,所幸Intel和AMD的及時介入解決了問題。微軟提交的程式碼主要與ARCH_HAS_EXECMEM_ROX核心配置相關,該配置用於改善x86_64/AMD64架構的效能,允許使用唯讀執行(ROX)權限快取可執行記憶體(EXECMEM)。
不過這段程式碼未經x86核心維護者的確認(Ack)就被推送,導致了控制流程完整性(CFI)的破壞。
控制流程執行技術(CET)是一項關鍵的安全功能,它透過影子堆疊和間接分支目標(IBT)來防範返回導向程式設計(ROP)攻擊和呼叫/跳躍導向程式設計(COP/JOP)攻擊。
影子堆疊透過與硬體儲存的副本進行比較,確保傳回位址的完整性,從而防止惡意軟體劫持合法軟體的進程步驟。
英特爾的Peter Zijlstra提交了緊急修復補丁,以恢復與EXECMEM_ROX支援相關的變更。
他指出,微軟的程式碼導致alternative.c檔案出現了巨大混亂,而且有錯誤,部分CFI變體甚至會導致系統崩潰。
AMD的Borislav Petkov也對此事件表示不滿,批評該代碼未經任何x86維護者確認就被合併,導致了一系列問題。