从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 当BHI(Branch History Invalidation)机制启用时,如果SYSENTER被调用并设置了TF(Task Flag)标志,那么entry_SYSENTER_compat()函数会使用CLEAR_BRANCH_HISTORY并调用clear_bhb_loop()函数,这会导致#DB(Debug)处理器在TF标志清除之前发出警告。 2. 问题重现: - 通过以下步骤可以重现问题: 1. 编写一个名为sysenter_step.c的C程序,其中包含一个main函数,该函数使用汇编指令执行单步操作。 2. 使用gcc编译sysenter_step.c。 3. 运行sysenter_step程序。 - 这会导致程序崩溃,并触发#DB处理器发出警告。 3. 错误日志: - 错误日志显示了程序崩溃时的堆栈跟踪,包括#DB处理器的调用栈和错误信息。 4. 修复措施: - 修复措施是在entry_SYSENTER_compat()函数中添加CLEAR_BRANCH_HISTORY指令,确保在TF标志清除之前执行。 5. 补丁信息: - 该补丁修复了7390db8aea0d("x86/bhi: Add support for clearing branch history at syscall entry")的漏洞。 - 该补丁由Suman Maity报告,Alexandre Chartre和Borislav Petkov(AMD)签署,由Andrew Cooper、Pawan Gupta和Josh Poinboeuf审查。 - 该补丁由Sasha Levin签署。 6. Diffstat: - 差分统计显示,该补丁修改了1个文件,增加了10个插入项和4个删除项。 这些信息表明,该补丁修复了一个与BHI机制和SYSENTER调用相关的漏洞,通过在entry_SYSENTER_compat()函数中添加CLEAR_BRANCH_HISTORY指令来解决这个问题。