All Projects → speed47 → Spectre Meltdown Checker

speed47 / Spectre Meltdown Checker

Licence: gpl-3.0
Spectre, Meltdown, Foreshadow, Fallout, RIDL, ZombieLoad vulnerability/mitigation checker for Linux & BSD

Programming Languages

shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to Spectre Meltdown Checker

meltdown-spectre-bios-list
a list of BIOS/Firmware fixes adressing CVE-2017-5715, CVE-2017-5753, CVE-2017-5754
Stars: ✭ 16 (-99.54%)
Mutual labels:  spectre, meltdown, cve-2017-5754, cve-2017-5715, cve-2017-5753
Awesome-BSD-Ports-Programs-And-Projects
A Repo Detailing BSD Ports, Programs, and Projects.
Stars: ✭ 46 (-98.68%)
Mutual labels:  freebsd, netbsd, dragonflybsd
Awesome Unix
All the UNIX and UNIX-Like: Linux, BSD, macOS, Illumos, 9front, and more.
Stars: ✭ 973 (-72.06%)
Mutual labels:  kernel, freebsd, netbsd
Fisy Fuzz
This is the full file system fuzzing framework that I presented at the Hack in the Box 2020 Lockdown Edition conference in April.
Stars: ✭ 110 (-96.84%)
Mutual labels:  kernel, freebsd, netbsd
osutil
Go library to easily detect current operating system, current Linux distribution, macOS version and more...
Stars: ✭ 22 (-99.37%)
Mutual labels:  freebsd, netbsd, dragonflybsd
hardware-attacks-state-of-the-art
Microarchitectural exploitation and other hardware attacks.
Stars: ✭ 29 (-99.17%)
Mutual labels:  spectre, meltdown, foreshadow
Specucheck
SpecuCheck is a Windows utility for checking the state of the software mitigations and hardware against CVE-2017-5754 (Meltdown), CVE-2017-5715 (Spectre v2), CVE-2018-3260 (Foreshadow), and CVE-2018-3639 (Spectre v4)
Stars: ✭ 542 (-84.43%)
Mutual labels:  kernel, spectre
spectre-attack-demo
Reproducing malicious memory reading on Intel i5 and Intel Xeon using a Spectre attack
Stars: ✭ 87 (-97.5%)
Mutual labels:  spectre, meltdown
WendzelNNTPd
A usable and IPv6-ready Usenet-server (NNTP daemon). It is portable (Linux/*BSD/*nix), supports AUTHINFO authentication, contains ACL as well as role based ACL and provides "invisible" newsgroups. It can run on MySQL and SQLite backends.
Stars: ✭ 43 (-98.77%)
Mutual labels:  freebsd, netbsd
uac
UAC is a Live Response collection script for Incident Response that makes use of native binaries and tools to automate the collection of AIX, Android, ESXi, FreeBSD, Linux, macOS, NetBSD, NetScaler, OpenBSD and Solaris systems artifacts.
Stars: ✭ 260 (-92.53%)
Mutual labels:  freebsd, netbsd
octopkg
A Qt-based pkgng (BSD) front end
Stars: ✭ 33 (-99.05%)
Mutual labels:  freebsd, dragonflybsd
gsmartcontrol
GSmartControl - Hard disk drive and SSD health inspection tool
Stars: ✭ 183 (-94.74%)
Mutual labels:  freebsd, netbsd
pfSense-pkg-WireGuard
This is a port of the original WireGuard UI bits as implemented by Netgate in pfSense 2.5.0 to a package suitable for rapid iteration and more frequent updating on future releases of pfSense.
Stars: ✭ 194 (-94.43%)
Mutual labels:  freebsd, kernel
InitKit
Neo-InitWare is a modular, cross-platform reimplementation of the systemd init system. It is experimental.
Stars: ✭ 364 (-89.55%)
Mutual labels:  freebsd, netbsd
Awesome Bsd
A collection of awesome BSD related stuff
Stars: ✭ 236 (-93.22%)
Mutual labels:  freebsd, netbsd
Objfw
[Official Mirror] A portable framework for the Objective-C language.
Stars: ✭ 161 (-95.38%)
Mutual labels:  freebsd, netbsd
Mg
Micro (GNU) Emacs-like text editor ❤️ public-domain
Stars: ✭ 117 (-96.64%)
Mutual labels:  freebsd, netbsd
Serverfarmer
Manage multiple servers with different operating systems, configurations, requirements etc. for many separate customers in an outsourcing model.
Stars: ✭ 122 (-96.5%)
Mutual labels:  freebsd, netbsd
psutil
Cross-platform lib for process and system monitoring in Python
Stars: ✭ 8,488 (+143.77%)
Mutual labels:  freebsd, netbsd
packetdrill
packetdrill with UDPLite and SCTP support and bug fixes for FreeBSD
Stars: ✭ 37 (-98.94%)
Mutual labels:  freebsd, netbsd

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 Mheck Exception on Page Size Changes MCEPSC, No eXcuses, iTLB Multihit
CVE-2020-0543 Special Register Buffer Data Sampling SRBDS

Supported operating systems:

  • Linux (all versions, flavors and distros)
  • FreeBSD, NetBSD, DragonFlyBSD and derivatives (others BSDs are not supported)

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:

  • x86 (32 bits)
  • amd64/x86_64 (64 bits)
  • ARM and ARM64
  • other architectures will work, but mitigations (if they exist) might not always be detected

Frequently Asked Questions (FAQ)

  • What is the purpose of this tool?
  • Why was it written?
  • How can it be useful to me?
  • How does it work?
  • What can I expect from it?

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

Easy way to run the script

  • Get the latest version of the script using curl or wget
curl -L https://meltdown.ovh -o spectre-meltdown-checker.sh
wget https://meltdown.ovh -O spectre-meltdown-checker.sh
  • Inspect the script. You never blindly run scripts you downloaded from the Internet, do you?
vim spectre-meltdown-checker.sh
  • When you're ready, run the script as root
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

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

  • Intel Haswell CPU running under Ubuntu 16.04 LTS

haswell

  • AMD Ryzen running under OpenSUSE Tumbleweed

ryzen

  • Batch mode (JSON flavor)

batch

Quick summary of the CVEs

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

  • Impact: Kernel & all software
  • Mitigation: recompile software and kernel with a modified compiler that introduces the LFENCE opcode at the proper positions in the resulting code
  • Performance impact of the mitigation: negligible

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

  • Impact: Kernel
  • Mitigation 1: new opcode via microcode update that should be used by up to date compilers to protect the BTB (by flushing indirect branch predictors)
  • Mitigation 2: introducing "retpoline" into compilers, and recompile software/OS with it
  • Performance impact of the mitigation: high for mitigation 1, medium for mitigation 2, depending on your CPU

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

  • Impact: Kernel
  • Mitigation: updated kernel (with PTI/KPTI patches), updating the kernel is enough
  • Performance impact of the mitigation: low to medium

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

  • Impact: TBC
  • Mitigation: microcode update only
  • Performance impact of the mitigation: negligible

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

  • Impact: software using JIT (no known exploitation against kernel)
  • Mitigation: microcode update + kernel update making possible for affected software to protect itself
  • Performance impact of the mitigation: low to medium

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

  • Impact: Kernel & all software (any physical memory address in the system)
  • Mitigation: microcode update
  • Performance impact of the mitigation: negligible

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

  • Impact: Kernel & System management mode
  • Mitigation: updated kernel (with PTE inversion)
  • Performance impact of the mitigation: negligible

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

  • Impact: Virtualization software and Virtual Machine Monitors
  • Mitigation: disable ept (extended page tables), disable hyper-threading (SMT), or updated kernel (with L1d flush)
  • Performance impact of the mitigation: low to significant

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)

  • Note: These 4 CVEs are similar and collectively named "MDS" vulnerabilities, the mitigation is identical for all
  • Impact: Kernel
  • Mitigation: microcode update + kernel update making possible to protect various CPU internal buffers from unprivileged speculative access to data
  • Performance impact of the mitigation: low to significant

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

  • Impact: Kernel
  • Mitigation: microcode update + kernel update making possible to protect various CPU internal buffers from unprivileged speculative access to data
  • Performance impact of the mitigation: low to significant

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

  • Impact: Virtualization software and Virtual Machine Monitors
  • Mitigation: disable hugepages use in hypervisor, or update hypervisor to benefit from mitigation
  • Performance impact of the mitigation: low to significant

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

  • Impact: Kernel
  • Mitigation: microcode update + kernel update helping to protect various CPU internal buffers from unprivileged speculative access to data
  • Performance impact of the mitigation: low
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].