从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 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程序,其中包含以下代码: 2. 使用gcc编译该程序。 3. 运行编译后的程序。 - 运行结果会导致Segmentation fault(核心dump)。 3. 内核日志: - 内核日志显示了错误信息,包括CPU编号、PID、错误位置等。 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. 代码更改: - 代码更改发生在 文件中,增加了CLEAR_BRANCH_HISTORY指令。 这些信息表明,该漏洞与BHI机制在SYSENTER调用时的TF标志处理有关,修复措施是确保在TF标志清除之前执行CLEAR_BRANCH_HISTORY操作。