从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 当BHI(Branch History Invalidation)机制启用时,如果SYSENTER被调用并设置了TF(Task Flag)标志,那么entry_SYSENTER_compat()函数会使用CLEAR_BRANCH_HISTORY并调用clear_bhb_loop()函数。这会导致#DB(Debug)处理器在TF标志清除之前发出警告,因为单步操作在entry_SYSENTER_compat()函数之外使用。 2. 问题重现: - 通过以下步骤可以重现问题: 1. 创建一个名为sysenter_step.c的文件,其中包含以下代码: 2. 使用gcc编译sysenter_step.c。 3. 运行编译后的程序。 - 这会导致程序崩溃,并触发#DB处理器发出警告。 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审查。 - 补丁链接为:https://lore.kernel.org/r/20240524070459.3674025-1-alexandre.chartre@oracle.com 6. 代码差异: - 代码差异显示了补丁应用前后的差异,主要修改了CLEAR_BRANCH_HISTORY的调用位置。 这些信息可以帮助我们理解漏洞的背景、重现步骤、修复措施以及相关的补丁信息。