
AMD处理器(也就是常说的电脑CPU)是超威半导体公司设计制造的x86架构中央处理器。凭借AMD处理器,超威成为与英特尔(Intel)并列的全球两大主流PC/服务器CPU厂商。

当前AMD CPU基于Zen架构,该架构于2017年发布第一代产品锐龙1000和锐龙2000,2024年已发布基于第5代Zen架构的锐龙9000。Zen架构使用SMT超线程技术,CPU的每核心都使用双线程,通过多任务的方式使得生产力效率大幅提升,但这也成为完成StackWarp攻击的必要条件。
{jz:field.toptypename/}
StackWarp 是德国CISPA团队于2026年1月披露的,它是存在于AMD Zen 1–5全系CPU的硬件级高危漏洞。这个漏洞通过改变超威公司未公开透露的AMD CPU的MSR寄存器(Model-Specific Register,中文叫型号专用寄存器)中的RSP(栈顶指针)指向的位置,改变CPU执行的指令。栈是一种特殊的队列,开云只能从队头进队头出,所以遵循数据的先进后出。栈顶指针就是指向栈的最顶端位置。随着栈内数据的进(push)和出(pop),栈顶会根据偏移量发生变化。
一般来说,每个CPU后端已经有了架构寄存器 ,专门维护栈顶位置RSP和偏移量,斗鱼app官网版但是AMD为了提高CPU前端性能,在前端内置一个专用寄存器MSR 0xC0011029来记录栈顶位置架构寄存器 ,而不需要每次从后端架构寄存器了解栈顶位置和偏移量。
攻击者可以改变MSR 0xC0011029的控制位,开关栈顶位置RSP是否根据偏移量自动更新。攻击者关闭RSP的自动更新,栈里面数据(指令或者说函数)依然根据push和pop正常进出,得到执行,但是栈顶位置RSP不变。攻击者打开RSP的自动更新,之前的栈偏移量一次性改变栈顶位置RSP。这时,此前执行的指令或者说函数基于RSP的返回位置、函数内部使用的局部变量,栈帧的位置已经全部不对了。每个函数被调用时,都会在栈顶生成一个栈帧,主要包含:1. 函数的返回地址(从哪调用,执行完回到哪);2. 上一层栈帧的起始位置;3. 函数内部的局部变量;4. 需要临时保存的寄存器现场。
目前有媒体报道,AMD已经有修复措施。