mirror of
https://github.com/speed47/spectre-meltdown-checker.git
synced 2025-07-15 15:21:23 +02:00
Compare commits
49 Commits
Author | SHA1 | Date | |
---|---|---|---|
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 | |||
8c8a8d35fd | |||
debd10b517 | |||
21f81ff5c9 | |||
1a14483c98 | |||
26564206db |
47
README.md
47
README.md
@ -1,51 +1,34 @@
|
|||||||
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.
|
||||||
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:
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
$ sudo ./spectre-meltdown-checker.sh
|
|
||||||
Spectre and Meltdown mitigation detection tool v0.07
|
|
||||||
|
|
||||||
CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
|
|
||||||
* 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'
|
|
||||||
* 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