mirror of
https://github.com/speed47/spectre-meltdown-checker.git
synced 2025-07-15 23:31:22 +02:00
Compare commits
78 Commits
Author | SHA1 | Date | |
---|---|---|---|
a09a5ba38f | |||
5a7d8d7edf | |||
49fdc6c449 | |||
af3de2a862 | |||
c6e1b0ac8a | |||
b913dacc1b | |||
eb0ebef5a8 | |||
e0254025e8 | |||
bd010340e6 | |||
a658de2f01 | |||
4aed5589fe | |||
8ed1f5e3af | |||
ffc542eb82 | |||
74bc7ba637 | |||
5389ac6844 | |||
36fb83215a | |||
59fe8c2ad8 | |||
b8d28e7f61 | |||
7c11d07865 | |||
7c5cfbb8c3 | |||
381038eceb | |||
d6e4aa43f0 | |||
e5e09384f0 | |||
7222367f04 | |||
ab512687cf | |||
a5aaa790a0 | |||
335439dee0 | |||
45297b6f7d | |||
a7b14306d5 | |||
608952ff71 | |||
1c3d349667 | |||
b93b13263d | |||
ad342cab06 | |||
5fd85e288b | |||
322f4efc8f | |||
b6bfcdbd45 | |||
19b01078c2 | |||
68961f98c2 | |||
f0f2ea9b11 | |||
6f1bdba1d9 | |||
7b05105a54 | |||
8aed2d4086 | |||
f4140a992a | |||
2c51b00a90 | |||
2d94514c07 | |||
0e8f97afbc | |||
70323a30da | |||
cc0b325383 | |||
4454f03136 | |||
949f316f89 | |||
5082afae61 | |||
d73a24cb5b | |||
75332e6e0f | |||
2d33a4369e | |||
8d4d295309 | |||
1ff437edbb | |||
34656827f5 | |||
8c8a8d35fd | |||
debd10b517 | |||
21f81ff5c9 | |||
206e4b7fbc | |||
1a14483c98 | |||
26564206db | |||
207168e097 | |||
f8ca11e56a | |||
c88acdd31d | |||
88df48f4a7 | |||
124ce8e27a | |||
7bbcfe0df7 | |||
a792348928 | |||
66f7708095 | |||
34ef5ef21b | |||
edbdf0da1f | |||
68adbfdf14 | |||
47c30babf1 | |||
ef7a5c4cf6 | |||
4406910bea | |||
b7197d6f54 |
48
README.md
48
README.md
@ -1,51 +1,45 @@
|
|||||||
Spectre & Meltdown Checker
|
Spectre & Meltdown Checker
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
A simple shell script to tell if your Linux installation is vulnerable
|
A simple shell script to tell if your Linux installation is vulnerable against the 3 "speculative execution" CVEs that were made public early 2018.
|
||||||
against the 3 "speculative execution" CVEs:
|
|
||||||
|
|
||||||
CVE-2017-5753 bounds check bypass (Spectre Variant 1)
|
Without options, it'll inspect you currently running kernel.
|
||||||
|
You can also specify a kernel image on the command line, if you'd like to inspect a kernel you're not running.
|
||||||
|
|
||||||
|
The script will do its best to detect mitigations, including backported non-vanilla patches, regardless of the advertised kernel version number.
|
||||||
|
|
||||||
|
## Example of script output
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Quick summary of the CVEs
|
||||||
|
|
||||||
|
**CVE-2017-5753** bounds check bypass (Spectre Variant 1)
|
||||||
|
|
||||||
- Impact: Kernel & all software
|
- 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
|
- 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
|
- Performance impact of the mitigation: negligible
|
||||||
|
|
||||||
CVE-2017-5715: branch target injection (Spectre Variant 2)
|
**CVE-2017-5715** branch target injection (Spectre Variant 2)
|
||||||
|
|
||||||
- Impact: Kernel
|
- 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 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
|
- 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
|
- 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)
|
**CVE-2017-5754** rogue data cache load (Meltdown)
|
||||||
|
|
||||||
- Impact: Kernel
|
- Impact: Kernel
|
||||||
- Mitigation: updated kernel (with PTI/KPTI patches), updating the kernel is enough
|
- Mitigation: updated kernel (with PTI/KPTI patches), updating the kernel is enough
|
||||||
- Performance impact of the mitigation: low to medium
|
- Performance impact of the mitigation: low to medium
|
||||||
|
|
||||||
Example of the output of the script:
|
## Disclaimer
|
||||||
|
|
||||||
|
This tool does its best to determine whether your system is immune (or has proper mitigations in place) for the collectively named "speculative execution" vulnerabilities. It doesn't attempt to run any kind of exploit, and can't guarantee that your system is secure, but rather helps you verifying whether your system has the known correct mitigations in place.
|
||||||
|
However, some mitigations could also exist in your kernel that this script doesn't know (yet) how to detect, or it might falsely detect mitigations that in the end don't work as expected (for example, on backported or modified kernels).
|
||||||
|
|
||||||
```
|
Your system exposure also depends on your CPU. As of now, AMD and ARM processors are marked as immune to some or all of these vulnerabilities (except some specific ARM models). All Intel processors manufactured since circa 1995 are thought to be vulnerable. Whatever processor one uses, one might seek more information from the manufacturer of that processor and/or of the device in which it runs.
|
||||||
$ sudo ./spectre-meltdown-checker.sh
|
|
||||||
Spectre and Meltdown mitigation detection tool v0.07
|
|
||||||
|
|
||||||
CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
|
The nature of the discovered vulnerabilities being quite new, the landscape of vulnerable processors can be expected to change over time, which is why this script makes the assumption that all CPUs are vulnerable, except if the manufacturer explicitely stated otherwise in a verifiable public announcement.
|
||||||
* Kernel compiled with LFENCE opcode inserted at the proper places: NO (only 38 opcodes found, should be >= 60)
|
|
||||||
> STATUS: VULNERABLE
|
|
||||||
|
|
||||||
CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
|
This tool has been released in the hope that it'll be useful, but don't use it to jump to conclusions about your security.
|
||||||
* Mitigation 1
|
|
||||||
* Hardware (CPU microcode) support for mitigation: NO
|
|
||||||
* Kernel support for IBRS: NO
|
|
||||||
* IBRS enabled for Kernel space: NO
|
|
||||||
* IBRS enabled for User space: NO
|
|
||||||
* Mitigation 2
|
|
||||||
* Kernel compiled with retpolines: NO
|
|
||||||
> STATUS: VULNERABLE (IBRS hardware + kernel support OR kernel with retpolines are needed to mitigate the vulnerability)
|
|
||||||
|
|
||||||
CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
|
|
||||||
* Kernel supports Page Table Isolation (PTI): YES
|
|
||||||
* PTI enabled and active: YES
|
|
||||||
> STATUS: NOT VULNERABLE (PTI mitigates the vulnerability)
|
|
||||||
```
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user