最近一个 谷歌安全研究员透露,通过一篇博客文章, 发现新漏洞 (CVE-2023-23583) 在英特尔处理器上, 代号为 Reptar,它影响多个英特尔台式机、移动和服务器 CPU,尤其是运行不同用户虚拟机的云系统。
脆弱性 “Reptar”允许系统在执行某些操作时挂起或崩溃 在非特权来宾系统上。 理论上,该漏洞可用于将第三个保护环的权限提升至零(CPL0)并逃离隔离环境,但由于微架构层面的调试困难,该场景尚未在实践中得到证实。
谷歌的信息安全工程团队向英特尔报告了该漏洞,英特尔于今天披露了该漏洞。 通过 Google、英特尔和行业合作伙伴之间的密切合作,我们已经实施了缓解措施,并保护了 Google 员工和我们的客户。
据研究员说 该漏洞存在于大量英特尔处理器系列中 据报道,该问题出现在第十代英特尔酷睿处理器和第三代至强可扩展处理器以及至强 E/D/W 处理器上。
关于雷普塔
提到漏洞 这是因为执行了以“REX”前缀编码的“REP MOVSB”指令 冗余(单字节前缀)会导致未定义的行为。 REX 前缀可以为下一条指令提供附加位以用作操作数,从而允许对所有 16 个可能的通用寄存器进行编码,并且这些可选位为在下一条指令中编码更多通用寄存器提供了空间。
八月份,我们的验证过程产生了一个有趣的说法。 他发现在优化的 FSRM“rep movs”操作中添加冗余 REX 前缀似乎会导致不可预测的结果。
我们在测试过程中观察到一些非常奇怪的行为。 例如,分支到意外位置、被忽略的无条件分支以及处理器不再准确记录指令指针 xsaveo 调用指令。
有趣的是,当试图了解发生了什么时,我们看到调试器报告不可能的状态。
该问题是在冗余前缀测试期间发现的, 理论上应该被忽略,但实际上会造成奇怪的影响,例如忽略无条件分支以及破坏 xsave 和 call 指令中的指针保存。 进一步分析表明,向“REP MOVSB”指令添加冗余前缀会导致用于对指令进行排序的 ROB(重新排序缓冲区)缓冲区的内容损坏。
x86 的一个有趣的特性是指令解码通常相当轻松。 如果您使用的前缀没有意义或与其他前缀冲突,则不会发生任何事情,它通常会被忽略。
这个事实有时很有用。 编译器可以使用冗余前缀将单个指令填充到所需的对齐限制。
该错误被认为是由于“MOVSB”指令的大小计算不正确造成的 前缀过多,导致MOVSB之后写入ROB缓冲区的指令寻址违规以及指令指针移位。
这种去同步可以限于中间计算的中断以及随后积分状态的恢复。 但是,如果同时阻止多个核心或 SMT 线程,则可能会对微架构的状态造成足够的损害,从而导致其崩溃。
英特尔内部审查还显示,在某些条件下,该漏洞有可能被利用来升级权限。
最后,值得一提的是,为了测试系统的完整性, 实用程序已发布 除了微码更新 20231114 中修复了相关漏洞之外,这还为漏洞的表现创造了条件。
如果你是 有兴趣了解更多,您可以在中查看详细信息 以下链接。