从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 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. 编写一个简单的C程序(sysenter_step.c)。 2. 使用gcc编译该程序。 3. 运行程序,预期程序崩溃,并且#DB处理器会发出警告。 3. 内核日志: - 内核日志显示了错误信息和堆栈跟踪,包括警告和错误信息。 4. 修复措施: - 修复措施是修改entry_SYSENTER_compat()函数,确保在TF标志清除后使用CLEAR_BRANCH_HISTORY。 5. 补丁信息: - 补丁的Git哈希码为ac8b270b61d48fccc61f05209777e3b5e11591e0。 - 补丁文件位于 。 6. 补丁内容: - 补丁内容包括在entry_SYSENTER_compat()函数中添加了CLEAR_BRANCH_HISTORY的调用。 7. 补丁状态: - 补丁已经通过了Suman Maity、Alexandre Chartre、Borislav Petkov、Andrew Cooper、Pawan Gupta和Josh Poimboeuf的审查。 8. 相关链接: - 补丁的详细信息可以在https://lore.kernel.org/r/20240524070459.3674025-1-alexandre.chartre@oracle.com中找到。 这些信息可以帮助我们理解漏洞的背景、问题的重现方式、修复措施以及补丁的状态。