利用超长中断攻破系统管理模式
摘要
一种新的攻击技术通过使用一个极其耗时的单条指令使处理器核心失同步,从而攻破x86 CPU的系统管理模式(SMM)安全,使攻击者能够在另一个核心仍处于受保护环境之外时执行SMM代码。针对Zen 3 Ryzen处理器的概念验证(PoC)已提供。
查看缓存全文
缓存时间: 2026/08/10 17:35
xoreaxeaxeax/smiiiiiiiiiiiiiiii 来源:https://github.com/xoreaxeaxeax/smiiiiiiiiiiiiiiii
smiiiiiiiiiiiiiiii 利用系统管理模式——借助一个非常非常非常非常非常非常非常长的中断
概述
事实证明,你可以打破 SMM —— 这个在每个 x86 CPU 后台隐形运行的安全、超特权执行环境 —— 仅仅使用一条荒谬地长时间运行的机器指令。
SMM 要求所有核心要么同时处于 SMM 中,要么同时处于 SMM 外。没有这一点,其安全模型就无法工作——当一个线程进入 SMM 时,它会让所有其他线程也进入。要打破这一点,我们只需要一个忙得没注意到自己应该加入 SMM 的核心。
其工作原理大致如下:
core 0 - start a long instruction | | | | | | core 1 - invite core 0 to smm | | | | | | core 1 - enter smm | | | | | | core 1 - wait for core 0 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | core 1 - wait for core 0 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | core 1 - wait for core 0 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | core 1 - wait for core 0 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | core 1 - wait for core 0 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | core 1 - wait for core 0 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | core 1 - wait for core 0 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | core 1 - wait for core 0 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | core 1 - give up core 1 - do secret smm stuff core 1 - finish smm | | | core 0 - join smm
此时,core 1
相似文章
Fabricked:误配置Infinity Fabric以攻破AMD SEV-SNP
一种新型软件攻击通过误配置Infinity Fabric来破坏AMD SEV-SNP的安全保证,使恶意虚拟机监视器能够对机密虚拟机进行任意读写访问。
Zapscape - KVM/x86 客户机到宿主机逃逸
Zapscape(CVE-2026-64561)是一个 KVM/x86 影子 MMU 释放后使用漏洞,允许客户机虚拟机逃逸到宿主机并以内核权限执行代码。已发布的 PoC 演示了针对 Linux 7.1.3 上 AMD SVM/NPT 的完整客户机到宿主机逃逸,对多租户公共云构成严重威胁。
某些x86 CPU中的硬件后门
安全研究人员Domas揭示了rosenbridge,这是VIA C3 x86 CPU中的一个硬件后门,允许非特权代码绕过处理器保护并访问内核内存。该存储库提供了检查并缓解此漏洞的工具。
Linux/x86-64上使用内存间接调用(徒劳?)的系统调用检测,第一部分
一篇技术博文,讨论在Linux/x86-64上检测系统调用的技术,包括指令双关、E9Patch、zpoline以及短指令修补的挑战。
一次Linux内核零日漏洞之旅——从受限的UAF到物理内存读写
本文详细介绍了在网络调度子系统(red调度器)中发现并利用的一个Linux内核零日漏洞,将一个受限的slab释放后使用(UAF)转化为完全的物理内存读写,最终实现root权限提升。该漏洞存在了2.5年,于2026年6月被修复。