Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
spectre-meltdown-checker — Reptar、Downfall、Zenbleed、ZombieLoad、RIDL、Fallout、Foreshadow、Spectre、Meltdown 漏洞/缓解检查器,适用于 Linux 和 BSD | Kitploit
工具/GitHubGitHub/speed47/spectre-meltdown-checker
防御工具侦察漏洞扫描器漏洞分析信息收集硬件安全硬件与物联网安全学习与教育
GitHubspeed47/spectre-meltdown-checker

spectre-meltdown-checker

Reptar、Downfall、Zenbleed、ZombieLoad、RIDL、Fallout、Foreshadow、Spectre、Meltdown 漏洞/缓解检查器,适用于 Linux 和 BSD

查看仓库
3.9k47122天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Spectre & Meltdown Checker

一个独立的 Shell 脚本,用于评估您的系统在面对自 2018 年初以来发布的多个瞬态执行 CVE 时的抵御能力,并指导您如何缓解它们。

CVE 列表

CVE名称别名
CVE-2017-5753边界检查绕过Spectre V1
CVE-2017-5715分支目标注入Spectre V2
CVE-2017-5754恶意数据缓存加载Meltdown
CVE-2018-3640恶意系统寄存器读取Variant 3a
CVE-2018-3639预测存储绕过Variant 4, SSB
CVE-2018-3615L1 终止故障Foreshadow (SGX)
CVE-2018-3620L1 终止故障Foreshadow-NG (OS/SMM)
CVE-2018-3646L1 终止故障Foreshadow-NG (VMM)
CVE-2018-12126微架构存储缓冲区数据采样MSBDS, Fallout
CVE-2018-12127微架构加载端口数据采样MLPDS, RIDL
CVE-2018-12130微架构填充缓冲区数据采样MFBDS, ZombieLoad
CVE-2018-12207页面大小更改上的机器检查异常iTLB Multihit, No eXcuses
CVE-2019-11091微架构数据采样的不可缓存内存MDSUM, RIDL
CVE-2019-11135TSX 异步中止TAA, ZombieLoad V2

以下条目是 ARM64 硅片勘误,内核已主动对其进行了工作绕过。它们没有指定的 CVE;仅通过 ARM 的勘误号进行追踪。使用 --errata <number> 或相关的 --variant 助记符来选择它们。

ID名称受影响的核
CVE-0001-0001预测的 AT TLB 损坏(勘误 1165522, 1319367, 1319537, 1530923)Cortex-A55/A57/A72/A76
CVE-0001-0002预测的非特权加载(勘误 2966298, 3117295)Cortex-A510/A520

我是否面临风险?

根据您的情况,下表回答了处于给定位置的攻击者是否可以从给定目标提取数据。 "用户态 → 内核"列也适用于虚拟机内部(虚拟机用户态对比虚拟机内核),因为无论是否虚拟化,相同的 CPU 机制都在起作用。

💥 数据可以跨越此边界泄露。

✅ 此场景下不受影响。

☠️ 拒绝服务(系统崩溃或不可预测行为),无数据泄露。

(1) 跨进程泄露需要 SMT(超线程)处于活动状态——攻击者和受害者必须共享一个物理核心。

(2) 仅泄露 RDRAND/RDSEED 的输出,而非任意内存;但仍允许从任何受害者恢复加密材料。

(3) CVE-2018-3615 (Foreshadow SGX) 颠倒了正常的信任模型:操作系统读取 SGX 飞地数据。除非系统运行 SGX 飞地,否则不相关,并且攻击者必须已经拥有操作系统级访问权限。

(4) 虚拟机→宿主机泄露仅适用于某些受影响的 CPU 型号(Skylake-X, Kaby Lake, Comet Lake)。Ice Lake、Tiger Lake 和 Rocket Lake 仅对本机(用户到内核)攻击受影响,而不对客户到宿主机攻击受影响。

详细 CVE 描述

展开以查看更详细的 CVE 描述

CVE-2017-5753 — 边界检查绕过 (Spectre Variant 1)

攻击者可以训练分支预测器使其错误预测边界检查,导致 CPU 推测性地访问越界内存。这会影响所有软件,包括内核,因为任何条件边界检查都可能被利用。缓解措施需要使用编译器重新编译软件和内核,在适当位置插入 LFENCE 指令(或等效的推测屏障,如 array_index_nospec)。性能影响可忽略不计,因为屏障仅适用于特定的、有针对性的代码模式。

CVE-2017-5715 — 分支目标注入 (Spectre Variant 2)

攻击者可以污染分支目标缓冲区 (BTB),从而将推测性执行的间接分支重定向到内核中,泄露内核内存。存在两种缓解策略:(1) 提供 IBRS(间接分支受限推测)的微码更新,它在特权切换时刷新分支预测器状态——这具有中到高的性能成本,尤其是在较旧的硬件上;或 (2) retpoline,一种编译器技术,它将间接分支替换为推测器无法利用的结构——这具有较低的性能成本,但需要重新编译内核和敏感软件。

CVE-2017-5754 — 恶意数据缓存加载 (Meltdown)

在受影响的 Intel 处理器上,用户进程可以推测性地读取内核内存,尽管缺少权限。CPU 最终会引发故障,但数据会在缓存中留下可观察的痕迹。缓解措施完全在内核端:页表隔离 (PTI/KPTI) 从用户空间页表中取消映射大多数内核内存,因此没有任何内容可供推测性读取。性能影响为中到低,主要来自在每个内核入口和退出时切换页表所增加的 TLB 压力。

CVE-2018-3640 — 恶意系统寄存器读取 (Variant 3a)

类似于 Meltdown,但针对系统寄存器:非特权进程可以推测性地读取特权系统寄存器值(例如模型特定寄存器),并通过侧信道将其泄露。缓解措施仅需要微码更新——不需要内核更改。性能影响可忽略不计。

CVE-2018-3639 — 预测存储绕过 (Variant 4)

CPU 可能会在之前的存储完成之前,从内存中推测性地加载一个值,从而读取陈旧数据。这主要影响使用 JIT 编译的软件(例如 JavaScript 引擎、eBPF),攻击者可以构建利用存储到加载依赖关系的代码。尚未证明针对内核本身的利用。缓解措施需要提供 SSBD 机制的微码更新,以及允许受影响软件通过 prctl() 选择加入保护的内核更新。性能影响为低到中,取决于缓解措施被激活的频率。

CVE-2018-3615 — L1 终止故障 (Foreshadow, SGX)

最初的 Foreshadow 攻击针对 Intel SGX 飞地。当页表条目的 Present 位被清除时,CPU 仍可能推测性地使用条目中的物理地址从 L1 缓存中获取数据,从而绕过 SGX 保护。攻击者可以从 SGX 飞地提取秘密(认证密钥、密封数据)。缓解措施需要包含 SGX 行为修改的微码更新。性能影响可忽略不计。

CVE-2018-3620 — L1 终止故障 (Foreshadow-NG, OS/SMM)

Foreshadow 在 SGX 之外的泛化:非特权的用户空间代码可以利用相同的 L1TF 机制来读取内核内存或系统管理模式 (SMM) 内存。缓解措施需要实现 PTE 反转的内核更新——使用无效物理地址标记非存在页表条目,以便 L1 缓存无法在这些地址包含有用数据。性能影响可忽略不计,因为 PTE 反转是对页表管理逻辑的一次性更改,没有运行时开销。

CVE-2018-3646 — L1 终止故障 (Foreshadow-NG, VMM)

客户机虚拟机可以利用 L1TF 来读取属于宿主机或其他虚拟机的内存,因为虚拟机监控程序的页表可能具有指向仍驻留在 L1 中的有效宿主机物理地址的非存在条目。缓解措施包括:在每次虚拟机进入时刷新 L1 数据缓存(通过提供 L1d 刷新支持的内核更新)、禁用扩展页表 (EPT)、或禁用超线程 (SMT) 以防止兄弟线程在推测期间重新填充 L1 缓存。性能影响从低到显著,具体取决于所选的缓解措施,其中在虚拟机进入时执行 L1d 刷新是最实用的,但在虚拟机密集型工作负载上仍然可测量。

CVE-2018-12126 — 微架构存储缓冲区数据采样 (MSBDS, Fallout)

CVE-2018-12127 — 微架构加载端口数据采样 (MLPDS, RIDL)

CVE-2018-12130 — 微架构填充缓冲区数据采样 (MFBDS, ZombieLoad)

CVE-2019-11091 — 微架构数据采样的不可缓存内存 (MDSUM, RIDL)

这四个 CVE 统称为 "MDS"(微架构数据采样)漏洞。它们利用不同的 CPU 内部缓冲区——存储缓冲区、填充缓冲区、加载端口和不可缓存内存路径——这些缓冲区可以在推测执行期间跨权限边界泄露最近访问的数据。非特权攻击者可以观察到内核或其他进程最近处理的数据。缓解措施需要提供 MD_CLEAR 机制的微码更新,以及使用 VERW 在特权转换时清除受影响缓冲区的内核更新。禁用超线程 (SMT) 提供了额外的保护,因为兄弟线程共享这些缓冲区。性能影响为低到显著,取决于内核转换的频率以及 SMT 是否被禁用。

不支持的 CVE

出于各种原因(重复、仅影响不支持的硬件或操作系统、理论性且无已知利用等),本工具不涵盖若干瞬态执行 CVE。完整列表以及每个排除原因可在 UNSUPPORTED_CVE_LIST.md 文件中找到。

范围

支持的操作系统:

  • Linux(所有版本、风格和发行版)
  • FreeBSD、NetBSD、DragonFlyBSD 及其衍生版本(其他 BSD 不受 支持)

对于 Linux 系统,无论内核版本号和发行版(如 Debian、Ubuntu、CentOS、RHEL、Fedora、openSUSE、Arch 等)如何,该工具都会检测缓解措施,包括回溯的非主线补丁,如果您自行编译了内核,它也能工作。更多信息请参见 此处。

其他操作系统(如 MacOS、Windows、ESXi 等)将永远不受支持。

支持的架构:

  • x86(32 位)
  • amd64/x86_64(64 位)
  • ARM 和 ARM64
  • 其他架构也能工作,但缓解措施(如果存在)可能并非总能被检测到

常见问题 (FAQ)

本工具的目的是什么?它为什么被编写?它对我有何用处?它是如何工作的?我可以期待什么?

这些问题(以及更多)在 FAQ 中有详细答案,请查阅!

操作模式

该脚本支持四种操作模式,具体取决于您是想要检查正在运行的内核、内核镜像、CPU 硬件,还是组合检查。

在实时模式(默认)下,脚本会检查 CPU 和正在运行的内核。您可以选择传递 --kernel、--config 或 --map,以将脚本指向它无法自动检测的文件。

在无运行时模式下,脚本仍会读取本地 CPU(CPUID、MSR、微码),但会跳过所有运行中内核的工件(/sys、/proc、dmesg)。当您有来自另一个系统的内核镜像但希望针对当前 CPU 进行评估时,请使用此模式。

在无硬件模式下,CPU 检查和运行中内核工件都被完全跳过。这对于跨架构分析很有用,例如在 x86 工作站上检查 ARM 内核镜像。

在仅硬件模式下,脚本仅报告 CPU 信息和每个 CVE 的硬件受影响性,不检查任何内核。

运行脚本

直接方式(推荐)

  • 使用 curl 或 wget 获取脚本的最新版本

    root@kitploit:~
    curl -L https://meltdown.ovh -o spectre-meltdown-checker.sh
    wget https://meltdown.ovh -O spectre-meltdown-checker.sh
    
  • 检查脚本。您不会盲目运行从互联网下载的脚本,对吧?

    root@kitploit:~
    vim spectre-meltdown-checker.sh
    
  • 准备好后,以 root 身份运行脚本

    root@kitploit:~
    chmod +x spectre-meltdown-checker.sh
    sudo ./spectre-meltdown-checker.sh
    

使用 Docker 容器

展开查看说明

使用 docker compose:```shell docker compose build docker compose run --rm spectre-meltdown-checker

root@kitploit:~
Note that on older versions of docker, `docker-compose` is a separate command, so you might
need to replace the two `docker compose` occurences above by `docker-compose`.

Using `docker build` directly:```shell
docker build -t spectre-meltdown-checker .
docker run --rm --privileged -v /boot:/boot:ro -v /dev/cpu:/dev/cpu:ro -v /lib/modules:/lib/modules:ro spectre-meltdown-checker

脚本输出示例

  • 在 Debian Trixie 下运行的 AMD EPYC-Milan

示例截图

下载工具
CVE-2020-0543特殊寄存器缓冲区数据采样SRBDS, CROSSTalk
CVE-2022-21123共享缓冲区数据读取SBDR, MMIO 陈旧数据
CVE-2022-21125共享缓冲区数据采样SBDS, MMIO 陈旧数据
CVE-2022-21166设备寄存器部分写入DRPW, MMIO 陈旧数据
CVE-2022-29900使用返回指令的任意预测代码执行Retbleed (AMD)
CVE-2022-29901使用返回指令的任意预测代码执行Retbleed (Intel), RSBA
CVE-2022-40982Gather 数据采样Downfall, GDS
CVE-2023-20569返回地址安全Inception, SRSO
CVE-2023-20588AMD 除零预测数据泄露DIV0
CVE-2023-20593跨进程信息泄露Zenbleed
CVE-2023-23583冗余前缀问题Reptar
CVE-2023-28746寄存器文件数据采样RFDS
CVE-2024-28956间接目标选择ITS
CVE-2024-36350瞬态调度器攻击,存储队列TSA-SQ
CVE-2024-36357瞬态调度器攻击,L1TSA-L1
CVE-2025-40300VM-Exit 陈旧分支预测VMScape
CVE-2024-45332分支特权注入BPI
CVE-2025-54505AMD Zen1 浮点除法器陈旧数据泄露FPDSS
CVE-0001-0003MSR SSBS 不自我同步(勘误 3194386 及其同类)Cortex-A76/A77/A78/A78C/A710/A715/A720/A720AE/A725, X1/X1C/X2/X3/X4/X925, Neoverse-N1/N2/N3/V1/V2/V3/V3AE
漏洞用户态 → 内核用户态 → 用户态虚拟机 → 宿主机虚拟机 → 虚拟机缓解措施
CVE-2017-5753 (Spectre V1)💥💥💥💥使用 LFENCE 重新编译所有内容
CVE-2017-5715 (Spectre V2)💥💥💥💥微码 + 内核更新(或 retpoline)
CVE-2017-5754 (Meltdown)💥✅✅✅内核更新
CVE-2018-3640 (Variant 3a)💥✅✅✅微码更新
CVE-2018-3639 (Variant 4, SSB)✅💥✅✅微码 + 内核更新
CVE-2018-3615 (Foreshadow, SGX)✅ (3)✅ (3)✅ (3)✅ (3)微码更新
CVE-2018-3620 (Foreshadow-NG, OS/SMM)💥✅✅✅内核更新
CVE-2018-3646 (Foreshadow-NG, VMM)✅✅💥💥内核更新(或禁用 EPT/SMT)
CVE-2018-12126 (MSBDS, Fallout)💥💥 (1)💥💥 (1)微码 + 内核更新
CVE-2018-12127 (MLPDS, RIDL)💥💥 (1)💥💥 (1)微码 + 内核更新
CVE-2018-12130 (MFBDS, ZombieLoad)💥💥 (1)💥💥 (1)微码 + 内核更新
CVE-2018-12207 (iTLB Multihit, No eXcuses)✅✅☠️✅虚拟机监控程序更新(或禁用大页面)
CVE-2019-11091 (MDSUM, RIDL)💥💥 (1)💥💥 (1)微码 + 内核更新
CVE-2019-11135 (TAA, ZombieLoad V2)💥💥 (1)💥💥 (1)微码 + 内核更新
CVE-2020-0543 (SRBDS, CROSSTalk)💥 (2)💥 (2)💥 (2)💥 (2)微码 + 内核更新
CVE-2022-21123 (SBDR, MMIO 陈旧数据)💥💥 (1)💥💥 (1)微码 + 内核更新
CVE-2022-21125 (SBDS, MMIO 陈旧数据)💥💥 (1)💥💥 (1)微码 + 内核更新
CVE-2022-21166 (DRPW, MMIO 陈旧数据)💥💥 (1)💥💥 (1)微码 + 内核更新
CVE-2022-29900 (Retbleed AMD)💥✅💥✅内核更新(+ 微码以获得 IBPB)
CVE-2022-29901 (Retbleed Intel, RSBA)💥✅💥✅微码 + 内核更新 (eIBRS 或 IBRS)
CVE-2022-40982 (Downfall, GDS)💥💥💥💥微码更新(或禁用 AVX)
CVE-2023-20569 (Inception, SRSO)💥✅💥✅微码 + 内核更新
CVE-2023-20588 (DIV0)💥💥 (1)💥💥 (1)内核更新(+ 禁用 SMT)
CVE-2023-20593 (Zenbleed)💥💥💥💥微码更新(或内核工作绕过)
CVE-2023-23583 (Reptar)☠️☠️☠️☠️微码更新
CVE-2023-28746 (RFDS)💥✅💥✅微码 + 内核更新
CVE-2024-28956 (ITS)💥✅💥 (4)✅微码 + 内核更新
CVE-2024-36350 (TSA-SQ)💥💥 (1)💥💥 (1)微码 + 内核更新
CVE-2024-36357 (TSA-L1)💥💥 (1)💥💥 (1)微码 + 内核更新
CVE-2025-40300 (VMScape)✅✅💥✅内核更新(VM-exit 上的 IBPB)
CVE-2024-45332 (BPI)💥✅💥✅微码更新
CVE-2025-54505 (FPDSS)💥💥💥💥内核更新

CVE-2018-12207 — 页面大小更改上的机器检查异常 (iTLB Multihit, No eXcuses)

恶意的客户机虚拟机可以通过在指令 TLB 中创建涉及页面大小更改的特定条件,触发机器检查异常 (MCE)——导致整个宿主机崩溃。这是一个影响运行不受信任客户机的虚拟机监控程序的拒绝服务漏洞。缓解措施需要禁用虚拟机监控程序中的大页面使用,或更新虚拟机监控程序以避免有问题的 iTLB 配置。性能影响从低到显著,具体取决于方法:禁用大页面会显著影响内存密集型工作负载。

CVE-2019-11135 — TSX 异步中止 (TAA, ZombieLoad V2)

在具有 Intel TSX 的 CPU 上,事务性中止可能会从行填充缓冲区中留下处于可通过侧信道观察的状态的数据,类似于 MDS 漏洞,但通过 TSX 触发。缓解措施需要微码更新加上内核支持来清除受影响的缓冲区或完全禁用 TSX(通过 TSX_CTRL MSR)。性能影响为低到显著,类似于 MDS,并且可以通过禁用 TSX 完全消除攻击面,代价是失去事务性内存支持。

CVE-2020-0543 — 特殊寄存器缓冲区数据采样 (SRBDS, CROSSTalk)

某些特殊的 CPU 指令(RDRAND、RDSEED、EGETKEY)通过一个共享的暂存缓冲区读取数据,该缓冲区可以通过推测执行在所有核心上访问。在任何核心上运行代码的攻击者可以观察来自不同核心上受害者的这些指令的输出,包括从 SGX 飞地提取加密密钥(已演示了完整的 ECDSA 密钥)。这是最早的核心间推测执行攻击之一。缓解措施需要序列化对暂存缓冲区访问的微码更新,以及用于管理缓解措施的内核更新。性能影响较低,主要影响大量使用 RDRAND/RDSEED 的工作负载。

CVE-2022-21123, CVE-2022-21125, CVE-2022-21166 — 处理器 MMIO 陈旧数据 (SBDR, SBDS, DRPW)

一类 MMIO(内存映射 I/O)漏洞,其中来自 CPU 内部填充缓冲区的陈旧数据可以通过 MMIO 操作期间的侧信道攻击进行推断。涵盖了三个子漏洞:共享缓冲区数据读取 (SBDR, CVE-2022-21123)、共享缓冲区数据采样 (SBDS, CVE-2022-21125) 和设备寄存器部分写入 (DRPW, CVE-2022-21166)。受影响的 Intel CPU 包括 Haswell 到 Rocket Lake 服务器和客户端处理器,以及 Tremont Atom 核心。缓解措施需要提供 FB_CLEAR 能力(VERW 指令清除填充缓冲区)的微码更新,加上在内核/用户转换和虚拟机进入/退出时调用 VERW 的内核更新 (Linux 5.19+)。当启用 SMT 时,即使缓解措施处于活动状态,兄弟线程仍然可以利用该漏洞。性能影响较低,因为 VERW 机制与现有的 MDS 缓解措施共享。

CVE-2022-29900 — 使用返回指令的任意预测代码执行 (Retbleed AMD)

在家族 0x15 到 0x17(Bulldozer 到 Zen 2)的 AMD 处理器以及 Hygon 家族 0x18 上,攻击者可以利用返回指令重定向推测执行并泄露内核内存,从而绕过对 Spectre V2 有效的 retpoline 缓解措施。与针对间接跳转和调用的 Spectre V2 不同,Retbleed 专门针对返回指令,该指令此前被认为是安全的。缓解措施需要提供未经训练的返回 thunk(安全 RET)或 IBPB-on-entry 机制的内核更新,以及在 Zen 1/2 上提供 IBPB 支持的微码更新。在 Zen 1/2 上,当使用基于 IBPB 的缓解措施时,应禁用 SMT 以获得完整保护。性能影响为中。

CVE-2022-29901 — 使用返回指令的任意预测代码执行 (Retbleed Intel, RSBA)

在具有 RSB 替代行为 (RSBA) 的 Intel Skylake 到 Rocket Lake 处理器上,当返回堆栈缓冲区下溢时,返回指令可以通过分支目标缓冲区进行推测性重定向,从而绕过 retpoline 缓解措施。缓解措施需要增强型 IBRS (eIBRS, 通过微码更新) 或支持 IBRS-on-entry(Linux 5.19+)的内核。调用深度跟踪(填充)是另一种缓解措施,可从 Linux 6.2+ 获得。普通的 retpoline 无法在具有 RSBA 能力的 CPU 上缓解此漏洞。性能影响为中到高。

**CVE-2022-40982 — Gather 数据采样 (GDS, Downfall)**AVX GATHER 指令可能通过共享的收集数据缓冲区,将先前使用的向量寄存器中的数据泄露到跨权限边界。这会影响任何在易受攻击的英特尔处理器上使用 AVX2 或 AVX-512 的软件。缓解措施由微码更新提供,该更新会清除收集缓冲区,或者完全禁用 AVX 功能。对于大多数工作负载,性能影响可以忽略不计,但对于 HPC 和 AI 推理等 AVX 密集型应用程序,性能影响可能很显著(高达 50%)。

CVE-2023-20569 — 返回地址安全性(Inception, SRSO)

在 AMD Zen 1 至 Zen 4 处理器上,攻击者可以操纵返回地址预测器,以在返回指令上重定向推测执行,从而泄露内核内存。缓解措施需要同时更新内核(提供 SRSO 安全返回序列或 IBPB-on-entry)和微码(在 Zen 3/4 上提供 SBPB,或在 Zen 1/2 上提供 IBPB 支持——后者还需要禁用 SMT)。性能影响从低到显著不等,具体取决于所选的缓解措施和 CPU 版本。

CVE-2023-20588 — AMD 除零推测数据泄露(DIV0)

在 AMD Zen 1 处理器上,#DE(除零)异常可能会在除法器中留下先前除法的陈旧商数据,后续除法可通过推测侧信道观察到。这可以在任何权限边界上泄露数据,包括共享同一物理核心的 SMT 兄弟线程之间。缓解措施需要一个内核更新(Linux 6.5+),该更新在每次退出到用户空间和 VMRUN 之前添加一个虚拟除法(amd_clear_divider()),防止陈旧数据持续存在。不需要微码更新。禁用 SMT 可提供额外保护,因为内核缓解措施不覆盖跨 SMT 线程的泄露。性能影响可以忽略不计。

CVE-2023-20593 — 跨进程信息泄露(Zenbleed)

AMD Zen 2 处理器中的一个错误会导致 VZEROUPPER 指令在推测执行期间错误地清零寄存器文件,从而使其他进程的陈旧数据在向量寄存器中可被观察到。这可以在任何权限边界上泄露数据,包括来自内核和其他进程的数据,速度高达每个核心 30 KB/s。缓解措施可以通过修复该错误的微码更新,或通过设置 DE_CFG MSR 中 FP_BACKUP_FIX 位(位 9)的内核解决方法来实现,后者会禁用有问题的优化。任何一种方法单独使用就足够了。性能影响可以忽略不计。

CVE-2023-23583 — 冗余前缀问题(Reptar)

英特尔处理器中的一个错误会导致在执行带有特定冗余 REX 前缀的指令时出现意外行为。根据具体情况,这可能导致系统崩溃(MCE)、不可预测的行为,或者潜在的权限提升。在受影响的 CPU 上运行的任何软件都可能触发该错误。缓解措施需要微码更新。性能影响低。

CVE-2023-28746 — 寄存器文件数据采样(RFDS)

在某些英特尔 Atom 和混合处理器(Goldmont、Goldmont Plus、Tremont、Gracemont,以及 Alder Lake 和 Raptor Lake 的 Atom 核心)上,寄存器文件可能保留先前操作的陈旧数据,可通过推测执行访问,从而使攻击者能够跨权限边界推断数据。缓解措施需要同时更新微码(提供 RFDS_CLEAR 能力)和内核(CONFIG_MITIGATION_RFDS,Linux 6.9+),后者使用 VERW 指令在权限转换时清除寄存器文件。具有 RFDS_NO 能力位的 CPU 不受影响。性能影响低。

CVE-2024-28956 — 间接目标选择(ITS)

在某些英特尔处理器(Skylake-X stepping 6+、Kaby Lake、Comet Lake、Ice Lake、Tiger Lake、Rocket Lake)上,攻击者可以训练间接分支预测器,以推测执行内核中的目标代码片段,绕过 eIBRS 保护。分支目标缓冲区(BTB)仅使用部分地址位来索引间接分支目标,从而允许用户空间代码影响内核空间的推测执行。一些受影响的 CPU(Ice Lake、Tiger Lake、Rocket Lake)仅容易受到本地用户到内核的攻击,而不易受到客户机到主机(VMX)的攻击。缓解措施需要同时更新微码(IPU 2025.1 / microcode-20250512+,修复了 IBPB 以完全刷新间接分支预测)和内核(CONFIG_MITIGATION_ITS,Linux 6.15+),后者对齐分支/返回 thunk 或使用 RSB stuffing。性能影响低。

CVE-2024-36350 — 瞬态调度器攻击,存储队列(TSA-SQ)

在 AMD Zen 3 和 Zen 4 处理器上,CPU 的瞬态调度器可能会在某些时间窗口内推测性地从存储队列中检索陈旧数据,从而允许攻击者跨权限边界推断先前存储操作的数据。该攻击还可以在 SMT 兄弟线程之间泄露数据。缓解措施需要同时更新微码(暴露 VERW_CLEAR 能力)和内核(CONFIG_MITIGATION_TSA,Linux 6.16+),后者在用户/内核转换和 VMRUN 之前使用 VERW 指令清除 CPU 缓冲区。当 SMT 激活时,内核还会在空闲时清除缓冲区。性能影响为低到中。

CVE-2024-36357 — 瞬态调度器攻击,L1(TSA-L1)

在 AMD Zen 3 和 Zen 4 处理器上,CPU 的瞬态调度器可能会在某些时间窗口内推测性地从 L1 数据缓存中检索陈旧数据,从而允许攻击者跨权限边界推断 L1D 缓存中的数据。缓解措施需要与 TSA-SQ 相同的微码和内核更新:暴露 VERW_CLEAR 的微码更新,以及在权限转换时通过 VERW 清除 CPU 缓冲区的内核更新(CONFIG_MITIGATION_TSA,Linux 6.16+)。性能影响为低到中。

CVE-2025-40300 — VM 退出陈旧的支预测(VMScape)

在客户机 VM 退出到主机后,来自客户机的陈旧分支预测可能会影响主机端的推测执行,直到内核返回用户空间,从而允许本地攻击者泄露主机内核内存。这影响从 Sandy Bridge 到 Arrow Lake/Lunar Lake 的英特尔处理器、AMD Zen 1 至 Zen 5 系列以及 Hygon 系列 0x18。只有运行带有不受信任客户机的管理程序的系统才面临风险。缓解措施需要一个内核更新(CONFIG_MITIGATION_VMSCAPE,Linux 6.18+),该更新在 VM 退出后返回用户空间之前发出 IBPB。除了现有的 IBPB 支持外,不需要特定的微码更新。性能影响低。

CVE-2024-45332 — 分支权限注入(BPI)

英特尔处理器(Coffee Lake 至 Raptor Lake,以及部分服务器和 Atom 部件)分支预测器更新机制中的一个竞态条件允许用户空间分支预测短暂影响内核空间的推测执行,破坏 eIBRS 和 IBPB 保护。这意味着仅依赖 eIBRS 进行 Spectre V2 缓解的系统,如果没有微码修复,可能无法完全受到保护。缓解措施需要一个微码更新(intel-microcode 20250512+),修复异步分支预测器更新时间,使 eIBRS 和 IBPB 按预期工作。不需要内核更改。性能影响可以忽略不计。

CVE-2025-54505 — AMD Zen1 浮点除法器陈旧数据泄露(FPDSS)

在 AMD Zen1 和 Zen+ 处理器(EPYC 7001、EPYC Embedded 3000、Athlon 3000 with Radeon、Ryzen 3000 with Radeon、Ryzen PRO 3000 with Radeon Vega)上,硬件浮点除法器可能保留先前操作的部分商数据。在某些情况下,这些结果可能泄露给共享同一除法器的另一个线程,跨越任何权限边界。该漏洞被分配为 CVE-2025-54505,并于 2026-04-17 由 AMD 作为 AMD-SB-7053 发布。缓解措施需要一个内核更新(主线提交 e55d98e77561,"x86/CPU: Fix FPDSS on Zen1",Linux 7.1),该更新无条件地在每个 Zen1 CPU 启动时设置 MSR 0xc0011028(MSR_AMD64_FP_CFG)的位 9(ZEN1_DENORM_FIX_BIT),从而禁用导致泄露的硬件优化。不需要微码更新:该 chicken 位从出厂时就存在于 Zen1 硅片中,且独立于微码版本。性能影响仅限于浮点除法吞吐量的小幅降低,这也是 AMD 默认情况下未在硬件中启用该位的原因。

模式标志CPU 硬件运行中的内核内核镜像用例
实时 (默认)(无)是是自动检测当前系统的日常审计
无运行时--no-runtime是否必需针对此 CPU 检查不同的内核(例如部署前)
无硬件--no-hw否否必需针对另一个系统或架构的内核镜像进行纯静态分析
仅硬件--hw-only是否否快速检查 CPU 受影响性,无需检查任何内核