speed47 / spectre-meltdown-checker

Reptar, Downfall, Zenbleed, ZombieLoad, RIDL, Fallout, Foreshadow, Spectre, Meltdown vulnerability/mitigation checker for Linux & BSD
3.87k stars 476 forks source link
cve-2017-5715 cve-2017-5753 cve-2017-5754 cve-2018-3615 cve-2018-3620 cve-2018-3639 cve-2018-3640 cve-2018-3646 cve-2019-11135 downfall foreshadow meltdown mitigation reptar spectre zombieload

Spectre & Meltdown Checker

A shell script to assess your system's resilience against the several transient execution CVEs that were published since early 2018, and give you guidance as to how to mitigate them.

CVE Name Aliases
CVE-2017-5753 Bounds Check Bypass Spectre Variant 1
CVE-2017-5715 Branch Target Injection Spectre Variant 2
CVE-2017-5754 Rogue Data Cache Load Meltdown, Variant 3
CVE-2018-3640 Rogue System Register Read Variant 3a
CVE-2018-3639 Speculative Store Bypass Variant 4
CVE-2018-3615 L1 Terminal Fault L1TF, Foreshadow (SGX)
CVE-2018-3620 L1 Terminal Fault L1TF, Foreshadow-NG (OS)
CVE-2018-3646 L1 Terminal Fault L1TF, Foreshadow-NG (VMM)
CVE-2018-12126 Microarchitectural Store Buffer Data Sampling MSBDS, Fallout
CVE-2018-12130 Microarchitectural Fill Buffer Data Sampling MFBDS, ZombieLoad
CVE-2018-12127 Microarchitectural Load Port Data Sampling MLPDS, RIDL
CVE-2019-11091 Microarchitectural Data Sampling Uncacheable Memory MDSUM, RIDL
CVE-2019-11135 TSX asynchronous abort TAA, ZombieLoad V2
CVE-2018-12207 Machine Check Exception on Page Size Changes MCEPSC, No eXcuses, iTLB Multihit
CVE-2020-0543 Special Register Buffer Data Sampling SRBDS
CVE-2022-40982 Gather Data Sampling GDS, Downfall
CVE-2023-20569 Return Address Security Inception, RAS, SRSO
CVE-2023-20593 Cross-Process Information Leak Zenbleed
CVE-2023-23583 Redundant Prefix issue Reptar

Supported operating systems:

For Linux systems, the tool will detect mitigations, including backported non-vanilla patches, regardless of the advertised kernel version number and the distribution (such as Debian, Ubuntu, CentOS, RHEL, Fedora, openSUSE, Arch, ...), it also works if you've compiled your own kernel. More information here.

Other operating systems such as MacOS, Windows, ESXi, etc. will most likely never be supported.

Supported architectures:

Frequently Asked Questions (FAQ)

All these questions (and more) have detailed answers in the FAQ, please have a look!

Easy way to run the script

curl -L https://meltdown.ovh -o spectre-meltdown-checker.sh
wget https://meltdown.ovh -O spectre-meltdown-checker.sh
vim spectre-meltdown-checker.sh
chmod +x spectre-meltdown-checker.sh
sudo ./spectre-meltdown-checker.sh

Run the script in a docker container

With docker-compose

docker compose build
docker compose run --rm spectre-meltdown-checker

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.

Without docker-compose

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

Example of script output

haswell

ryzen

batch

Quick summary of the CVEs

CVE-2017-5753 bounds check bypass (Spectre Variant 1)

CVE-2017-5715 branch target injection (Spectre Variant 2)

CVE-2017-5754 rogue data cache load (Meltdown)

CVE-2018-3640 rogue system register read (Variant 3a)

CVE-2018-3639 speculative store bypass (Variant 4)

CVE-2018-3615 l1 terminal fault (Foreshadow-NG SGX)

CVE-2018-3620 l1 terminal fault (Foreshadow-NG SMM)

CVE-2018-3646 l1 terminal fault (Foreshadow-NG VMM)

CVE-2018-12126 [MSBDS] Microarchitectural Store Buffer Data Sampling (Fallout)

CVE-2018-12130 [MFBDS] Microarchitectural Fill Buffer Data Sampling (ZombieLoad)

CVE-2018-12127 [MLPDS] Microarchitectural Load Port Data Sampling (RIDL)

CVE-2019-11091 [MDSUM] Microarchitectural Data Sampling Uncacheable Memory (RIDL)

CVE-2019-11135 TSX Asynchronous Abort (TAA, ZombieLoad V2)

CVE-2018-12207 machine check exception on page size changes (No eXcuses, iTLB Multihit)

CVE-2020-0543 Special Register Buffer Data Sampling (SRBDS)

CVE-2022-40982 Gather Data Sampling (GDS, Downfall)

CVE-2023-20569 Return Address Security (Inception)

CVE-2023-20593 Cross-Process Information Leak (Zenbleed)

CVE-2023-23583 Redundant Prefix issue (Reptar)