近期,Linux內核社區遭遇了一次重大挑戰,版本6.13的內核安全穩定性受到了嚴重威脅,這一問題的根源指向了微軟提交的一段旨在優化x86_64/AMD64架構性能的代碼。
具體而言,這段代碼涉及只讀執行(ROX)權限緩存可執行內存(EXECMEM)功能的實現,然而,它在未經x86內核維護團隊充分審核的情況下被合并進了內核。這一疏忽直接破壞了控制流完整性(CFI)機制,該機制是防御返回導向編程(ROP)和調用/跳轉導向編程(COP/JOP)攻擊的重要防線。
CFI機制的核心在于影子堆棧的使用,它通過比較硬件存儲的副本與實際的返回地址,確保程序執行流程不被惡意篡改。然而,微軟提交的這段代碼在alternative.c文件中引發了嚴重混亂,導致部分CFI變體失效,極端情況下甚至會造成系統崩潰。
面對這一緊急情況,英特爾的Peter Zijlstra迅速行動,提交了一個緊急修復補丁,旨在恢復與EXECMEM_ROX支持相關的功能,同時修復由此引發的一系列問題。這一及時的補救措施對于緩解當前的安全危機至關重要。
Linux內核社區的另一位知名開發者Borislav Petkov也對這一事件表達了強烈的不滿。他批評指出,如此重要的代碼更改竟然未經任何x86維護者的確認就被合并,這不僅違反了內核開發的常規流程,也暴露出了當前代碼審查機制存在的漏洞。
此次事件再次提醒了Linux內核社區和廣大開發者,代碼審查的重要性不容忽視。在未來的開發過程中,必須加強對代碼更改的審核力度,確保每一行代碼都經過充分的測試和驗證,以保障Linux內核的穩定性和安全性。