从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 标题:x86/mtrr: Check if fixed MTRRs exist before saving them - 描述:MTRRs(Memory Type Range Registers)有一个过时的固定变体,用于对640K-1MB区域进行精细粒度的缓存控制,该变体使用单独的MSRs(Memory Type Range Registers)。这个固定变体在MTRR能力MSR中有一个单独的能力位。 - 问题:在所有支持MTRR的x86 CPU中,这个单独的能力位被设置,因此mtrr_save_state()函数在访问固定MTRR MSR时没有检查这个能力位。 - 影响:在不支持固定MTRR能力的CPU上,这会导致一个#GP(General Protection Fault)异常。虽然#GP本身是无害的,因为RDMSR故障被处理为WARN_ON(),但会导致WARN_ON()。 - 修复:添加缺失的能力检查以防止这个问题。 2. 修复代码: - 修改了mtrr_save_state()函数,添加了对固定MTRR能力的检查。 - 代码片段: 3. 补丁信息: - 补丁ID:2b1f6278d77c - 补丁标题:x86: Save the MTRRs of the BSP before booting an AP - 作者:Andi Kleen - 签署者:Thomas Gleixner - CC:stable@vger.kernel.org - 链接:https://lore.kernel.org/all/20240808000244.946864-1-ak@linux.intel.com 4. Diffstat: - 文件变化:1个文件,1个插入,1个删除。 - Diff内容: 这些信息表明,这个漏洞是由于MTRR能力检查的缺失导致的,修复了这个问题,并且已经通过补丁提交到Linux内核中。