电脑知识网1月14日消息,据报道,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维护者确认就被合并,导致了一系列问题。