现代 CPU 的**分支预测(Branch Prediction)与乱序推测执行(Speculative Execution)**机制在指令回滚时,不会清除已载入 CPU L1/L3 Cache 的缓存状态。攻击者结合 Flush+Reload 探针技术即可还原越权读取的内核内存。
一、利用 lfence 序列化阻断推测执行
c
// Spectre v1 越界访问推测屏障
if (x < array1_size) {
// 强制串行化,阻止 CPU 在校验完成前推测性执行加载
_mm_lfence();
y = array2[array1[x] * 512];
}