狼叫兽
据报道,Linux内核6.13面临一次严重的危机,可能引发系统崩溃。问题起因于微软提交的代码,在改善x86_64/AMD64架构性能方面涉及到了只读执行(ROX)权限缓存可执行内存(EXECMEM)功能。
这段代码未经x86内核维护者的确认就推送了,导致控制流完整性(CFI)遭到破坏。控制流执行技术(CET)是一项关键的安全功能,通过影子堆栈和间接分支目标(IBT)来防范返回导向编程(ROP)攻击和调用/跳转导向编程(COP/JOP)攻击。
影子堆栈与硬件存储的副本进行比较,确保返回地址的完整性,以防止恶意软件劫持合法软件的进程步骤。然而,微软的代码导致alternative.c文件出现巨大混乱,并存在错误,部分CFI变体甚至会导致系统崩溃。
幸运的是,英特尔的Peter Zijlstra及时提交了紧急修复补丁,以恢复与EXECMEM_ROX支持相关的更改。Borislav Petkov也对这一事件表示不满,并批评该代码未经任何x86维护者确认就被合并,导致了一系列问题。