
Reptar, Downfall, Zenbleed, ZombieLoad, RIDL, Fallout, Foreshadow, Spectre, Meltdown Schwachstellen-/Gegenmaßnahmen-Prüfer für Linux & BSD
Ein eigenständiges Shell-Skript, das die Widerstandsfähigkeit Ihres Systems gegen die verschiedenen transient execution CVEs bewertet, die seit Anfang 2018 veröffentlicht wurden, und Ihnen Anleitungen zur Abschwächung gibt.
| CVE | Name | Aliase |
|---|
| CVE-2017-5753 | Bounds Check Bypass | Spectre V1 |
| CVE-2017-5715 | Branch Target Injection | Spectre V2 |
| 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, SSB |
| CVE-2018-3615 | L1 Terminal Fault | Foreshadow (SGX) |
| CVE-2018-3620 | L1 Terminal Fault | Foreshadow-NG (OS/SMM) |
| CVE-2018-3646 | L1 Terminal Fault | Foreshadow-NG (VMM) |
| CVE-2018-12126 | Microarchitectural Store Buffer Data Sampling | MSBDS, Fallout |
| CVE-2018-12127 | Microarchitectural Load Port Data Sampling | MLPDS, RIDL |
| CVE-2018-12130 | Microarchitectural Fill Buffer Data Sampling | MFBDS, ZombieLoad |
| CVE-2018-12207 | Machine Check Exception on Page Size Changes | iTLB Multihit, No eXcuses |
| CVE-2019-11091 | Microarchitectural Data Sampling Uncacheable Memory | MDSUM, RIDL |
| CVE-2019-11135 | TSX Asynchronous Abort | TAA, ZombieLoad V2 |
| CVE-2020-0543 | Special Register Buffer Data Sampling | SRBDS, CROSSTalk |
| CVE-2022-21123 | Shared Buffers Data Read | SBDR, MMIO Stale Data |
| CVE-2022-21125 | Shared Buffers Data Sampling | SBDS, MMIO Stale Data |
| CVE-2022-21166 | Device Register Partial Write | DRPW, MMIO Stale Data |
| CVE-2022-29900 | Arbitrary Speculative Code Execution with Return Instructions | Retbleed (AMD) |
| CVE-2022-29901 | Arbitrary Speculative Code Execution with Return Instructions | Retbleed (Intel), RSBA |
| CVE-2022-40982 | Gather Data Sampling | Downfall, GDS |
| CVE-2023-20569 | Return Address Security | Inception, SRSO |
| CVE-2023-20588 | AMD Division by Zero Speculative Data Leak | DIV0 |
| CVE-2023-20593 | Cross-Process Information Leak | Zenbleed |
| CVE-2023-23583 | Redundant Prefix Issue | Reptar |
| CVE-2023-28746 | Register File Data Sampling | RFDS |
| CVE-2024-28956 | Indirect Target Selection | ITS |
| CVE-2024-36350 | Transient Scheduler Attack, Store Queue | TSA-SQ |
| CVE-2024-36357 | Transient Scheduler Attack, L1 | TSA-L1 |
| CVE-2025-40300 | VM-Exit Stale Branch Prediction | VMScape |
| CVE-2024-45332 | Branch Privilege Injection | BPI |
| CVE-2025-54505 | AMD Zen1 Floating-Point Divider Stale Data Leak | FPDSS |
Die folgenden Einträge sind ARM64-Silizium-Errata, die der Kernel aktiv umgeht. Ihnen ist keine CVE zugeordnet; sie werden nur durch die Erratum-Nummern von ARM verfolgt. Wählen Sie sie mit --errata <number> oder dem zugehörigen --variant-Mnemonik aus.
| ID | Name | Betroffene Kerne |
|---|---|---|
| CVE-0001-0001 | Speculative AT TLB corruption (errata 1165522, 1319367, 1319537, 1530923) | Cortex-A55/A57/A72/A76 |
| CVE-0001-0002 | Speculative unprivileged load (errata 2966298, 3117295) | Cortex-A510/A520 |
| CVE-0001-0003 | MSR SSBS not self-synchronizing (erratum 3194386 + siblings) | Cortex-A76/A77/A78/A78C/A710/A715/A720/A720AE/A725, X1/X1C/X2/X3/X4/X925, Neoverse-N1/N2/N3/V1/V2/V3/V3AE |
Abhängig von Ihrer Situation beantwortet die folgende Tabelle, ob ein Angreifer in einer bestimmten Position Daten von einem bestimmten Ziel extrahieren kann. Die Spalte "Benutzerland → Kernel" gilt auch innerhalb einer VM (VM-Benutzerland vs. VM-Kernel), da unabhängig von der Virtualisierung dieselben CPU-Mechanismen wirken.
| Sicherheitslücke | Benutzerland → Kernel | Benutzerland → Benutzerland | VM → Host | VM → VM | Abschwächung |
|---|---|---|---|---|---|
| CVE-2017-5753 (Spectre V1) | 💥 | 💥 | 💥 | 💥 | Alles mit LFENCE neu kompilieren |
| CVE-2017-5715 (Spectre V2) | 💥 | 💥 | 💥 | 💥 | Mikrocode + Kernel-Update (oder Retpoline) |
| CVE-2017-5754 (Meltdown) | 💥 | ✅ | ✅ | ✅ | Kernel-Update |
| CVE-2018-3640 (Variant 3a) | 💥 | ✅ | ✅ | ✅ | Mikrocode-Update |
| CVE-2018-3639 (Variant 4, SSB) | ✅ | 💥 | ✅ | ✅ | Mikrocode + Kernel-Update |
| CVE-2018-3615 (Foreshadow, SGX) | ✅ (3) | ✅ (3) | ✅ (3) | ✅ (3) | Mikrocode-Update |
| CVE-2018-3620 (Foreshadow-NG, OS/SMM) | 💥 | ✅ | ✅ | ✅ | Kernel-Update |
| CVE-2018-3646 (Foreshadow-NG, VMM) | ✅ | ✅ | 💥 | 💥 | Kernel-Update (oder EPT/SMT deaktivieren) |
| CVE-2018-12126 (MSBDS, Fallout) | 💥 | 💥 (1) | 💥 | 💥 (1) | Mikrocode + Kernel-Update |
| CVE-2018-12127 (MLPDS, RIDL) | 💥 | 💥 (1) | 💥 | 💥 (1) | Mikrocode + Kernel-Update |
| CVE-2018-12130 (MFBDS, ZombieLoad) | 💥 | 💥 (1) | 💥 | 💥 (1) | Mikrocode + Kernel-Update |
| CVE-2018-12207 (iTLB Multihit, No eXcuses) | ✅ |
💥 Daten können über diese Grenze hinweg preisgegeben werden.
✅ In diesem Szenario nicht betroffen.
☠️ Denial of Service (Systemabsturz oder unvorhersehbares Verhalten), kein Datenleck.
(1) Prozessübergreifende Leaks erfordern aktives SMT (Hyper-Threading) – Angreifer und Opfer müssen sich einen physischen Kern teilen.
(2) Leckt nur RDRAND-/RDSEED-Ausgabe, keinen beliebigen Speicher; erlaubt dennoch die Wiederherstellung von kryptografischem Material von jedem Opfer.
(3) CVE-2018-3615 (Foreshadow SGX) kehrt das normale Vertrauensmodell um: Das OS liest SGX-Enklaven-Daten. Es ist nur relevant, wenn das System SGX-Enklaven ausführt, und der Angreifer muss bereits OS-Zugriff haben.
(4) VM→Host-Leck betrifft nur bestimmte betroffene CPU-Modelle (Skylake-X, Kaby Lake, Comet Lake). Ice Lake, Tiger Lake und Rocket Lake sind nur für native (Benutzer-zu-Kernel) Angriffe betroffen, nicht für Gast-zu-Host.
CVE-2017-5753 — Bounds Check Bypass (Spectre Variant 1)
Ein Angreifer kann den Branch Predictor trainieren, eine Grenzprüfung falsch vorherzusagen, sodass die CPU spekulativ auf Speicher außerhalb der Grenzen zugreift. Dies betrifft alle Software, einschließlich des Kernels, da jede bedingte Grenzprüfung potenziell ausgenutzt werden kann. Die Abschwächung erfordert das Neukompilieren von Software und Kernel mit einem Compiler, der LFENCE-Anweisungen (oder gleichwertige Spekulationsbarrieren wie array_index_nospec) an den richtigen Stellen einfügt. Die Leistungsauswirkung ist vernachlässigbar, da die Barrieren nur auf bestimmte, gezielte Codemuster angewendet werden.
CVE-2017-5715 — Branch Target Injection (Spectre Variant 2)
Ein Angreifer kann den Branch Target Buffer (BTB) vergiften, um die spekulative Ausführung indirekter Verzweigungen im Kernel umzuleiten und Kernel-Speicher preiszugeben. Es gibt zwei Strategien zur Abschwächung: (1) Mikrocode-Updates, die IBRS (Indirect Branch Restricted Speculation) bereitstellen und den Branch-Predictor-Zustand bei Privilegienübergängen löschen – dies hat mittlere bis hohe Leistungskosten, besonders auf älterer Hardware; oder (2) Retpoline, eine Compiler-Technik, die indirekte Verzweigungen durch ein Konstrukt ersetzt, das der Spekulant nicht ausnutzen kann – dies hat geringere Leistungskosten, erfordert aber das Neukompilieren des Kernels und empfindlicher Software.
CVE-2017-5754 — Rogue Data Cache Load (Meltdown)
Auf betroffenen Intel-Prozessoren kann ein Benutzerprozess trotz fehlender Berechtigung spekulativ Kernel-Speicher lesen. Die CPU löst letztendlich einen Fehler aus, aber die Daten hinterlassen beobachtbare Spuren im Cache. Die Abschwächung erfolgt vollständig auf Kernel-Seite: Page Table Isolation (PTI/KPTI) entfernt den meisten Kernel-Speicher aus den Benutzerbereichs-Seitentabellen, sodass spekulativ nichts zu lesen ist. Die Leistungsauswirkung ist gering bis mittel, hauptsächlich durch den erhöhten TLB-Druck, der durch das Umschalten der Seitentabellen bei jedem Kernel-Ein- und Austritt verursacht wird.
CVE-2018-3640 — Rogue System Register Read (Variant 3a)
Ähnlich wie Meltdown, aber gezielt auf Systemregister: Ein privilegierter Prozess kann spekulativ privilegierte Systemregisterwerte (wie Model-Specific Registers) lesen und über einen Seitenkanal exfiltrieren. Die Abschwächung erfordert nur ein Mikrocode-Update – keine Kernel-Änderungen nötig. Die Leistungsauswirkung ist vernachlässigbar.
CVE-2018-3639 — Speculative Store Bypass (Variant 4)
Die CPU kann spekulativ einen Wert aus dem Speicher laden, bevor ein vorhergehender Speichervorgang an dieselbe Adresse abgeschlossen ist, und dabei veraltete Daten lesen. Dies betrifft hauptsächlich Software, die JIT-Kompilierung verwendet (z. B. JavaScript-Engines, eBPF), wo ein Angreifer Code erstellen kann, der die Store-to-Load-Abhängigkeit ausnutzt. Es wurde kein bekannter Exploit gegen den Kernel selbst demonstriert. Die Abschwächung erfordert ein Mikrocode-Update (das den SSBD-Mechanismus bereitstellt) plus ein Kernel-Update, das betroffener Software erlaubt, den Schutz über prctl() zu aktivieren. Die Leistungsauswirkung ist gering bis mittel, abhängig davon, wie häufig die Abschwächung aktiviert wird.
CVE-2018-3615 — L1 Terminal Fault (Foreshadow, SGX)
Der ursprüngliche Foreshadow-Angriff zielt auf Intel SGX-Enklaven ab. Wenn das Present-Bit eines Seitentabelleneintrags gelöscht ist, kann die CPU dennoch spekulativ die physikalische Adresse im Eintrag verwenden, um Daten aus dem L1-Cache abzurufen, und dabei SGX-Schutzmechanismen umgehen. Ein Angreifer kann Geheimnisse (Attestierungsschlüssel, versiegelte Daten) aus SGX-Enklaven extrahieren. Die Abschwächung erfordert ein Mikrocode-Update, das Änderungen am SGX-Verhalten beinhaltet. Die Leistungsauswirkung ist vernachlässigbar.
CVE-2018-3620 — L1 Terminal Fault (Foreshadow-NG, OS/SMM)
Eine Verallgemeinerung von Foreshadow über SGX hinaus: Nicht privilegierter Benutzercode kann denselben L1TF-Mechanismus ausnutzen, um Kernel-Speicher oder System Management Mode (SMM)-Speicher zu lesen. Die Abschwächung erfordert ein Kernel-Update, das PTE-Inversion implementiert – das Markieren nicht vorhandener Seitentabelleneinträge mit ungültigen physikalischen Adressen, sodass der L1-Cache keine nützlichen Daten an diesen Adressen enthalten kann. Die Leistungsauswirkung ist vernachlässigbar, da PTE-Inversion eine einmalige Änderung der Seitentabellenverwaltungslogik ohne Laufzeit-Overhead ist.
CVE-2018-3646 — L1 Terminal Fault (Foreshadow-NG, VMM)
Eine Gast-VM kann L1TF ausnutzen, um Speicher des Hosts oder anderer Gäste zu lesen, da die Seitentabellen des Hypervisors möglicherweise nicht vorhandene Einträge enthalten, die auf gültige Host-Physikalische-Adressen verweisen, die noch im L1-Cache resident sind. Abschwächungsoptionen umfassen: Leeren des L1-Datencaches bei jedem VM-Eintritt (über ein Kernel-Update, das L1d-Flush-Unterstützung bereitstellt), Deaktivieren von Extended Page Tables (EPT) oder Deaktivieren von Hyper-Threading (SMT), um zu verhindern, dass ein Geschwister-Thread den L1-Cache während der Spekulation wieder auffüllt. Die Leistungsauswirkung reicht von gering bis erheblich, abhängig von der gewählten Abschwächung, wobei L1d-Flush bei VM-Eintritt die praktikabelste, aber bei VM-lastigen Workloads immer noch spürbare Methode ist.
CVE-2018-12126 — Microarchitectural Store Buffer Data Sampling (MSBDS, Fallout)
CVE-2018-12127 — Microarchitectural Load Port Data Sampling (MLPDS, RIDL)
CVE-2018-12130 — Microarchitectural Fill Buffer Data Sampling (MFBDS, ZombieLoad)
CVE-2019-11091 — Microarchitectural Data Sampling Uncacheable Memory (MDSUM, RIDL)
Diese vier CVEs werden gemeinsam als "MDS" (Microarchitectural Data Sampling) Schwachstellen bezeichnet. Sie nutzen verschiedene interne CPU-Puffer aus – Store Buffer, Fill Buffer, Load Ports und nicht cachebare Speicherpfade – die während spekulativer Ausführung kürzlich zugegriffene Daten über Privilegiengrenzen hinweg preisgeben können. Ein nicht privilegierter Angreifer kann Daten beobachten, die kürzlich vom Kernel oder anderen Prozessen verarbeitet wurden. Die Abschwächung erfordert ein Mikrocode-Update (das den MD_CLEAR-Mechanismus bereitstellt) plus ein Kernel-Update, das VERW verwendet, um betroffene Puffer bei Privilegienübergängen zu löschen. Das Deaktivieren von Hyper-Threading (SMT) bietet zusätzlichen Schutz, da Geschwister-Threads diese Puffer teilen. Die Leistungsauswirkung ist gering bis erheblich, abhängig von der Häufigkeit der Kernel-Übergänge und ob SMT deaktiviert ist.
CVE-2018-12207 — Machine Check Exception on Page Size Changes (iTLB Multihit, No eXcuses)
Eine böswillige Gast-VM kann eine Machine Check Exception (MCE) auslösen – den gesamten Host zum Absturz bringen – indem sie bestimmte Bedingungen im Instruction TLB in Bezug auf Seitengrößenänderungen erzeugt. Dies ist eine Denial-of-Service-Schwachstelle, die Hypervisoren betrifft, die nicht vertrauenswürdige Gäste ausführen. Die Abschwächung erfordert entweder das Deaktivieren der Verwendung von Hugepages im Hypervisor oder das Aktualisieren des Hypervisors, um die problematischen iTLB-Konfigurationen zu vermeiden. Die Leistungsauswirkung reicht von gering bis erheblich, abhängig vom Ansatz: Das Deaktivieren von Hugepages kann speicherintensive Workloads erheblich beeinträchtigen.
CVE-2019-11135 — TSX Asynchronous Abort (TAA, ZombieLoad V2)
Auf CPUs mit Intel TSX kann ein transaktionaler Abbruch Daten aus den Line Fill Buffers in einen Zustand versetzen, der über Seitenkanäle beobachtbar ist, ähnlich den MDS-Schwachstellen, aber ausgelöst durch TSX. Die Abschwächung erfordert ein Mikrocode-Update plus Kernel-Unterstützung, um entweder betroffene Puffer zu löschen oder TSX vollständig zu deaktivieren (über das TSX_CTRL MSR). Die Leistungsauswirkung ist gering bis erheblich, ähnlich wie bei MDS, mit der Option, die Angriffsfläche vollständig durch Deaktivieren von TSX zu eliminieren, auf Kosten des Verlusts der Unterstützung für transaktionalen Speicher.
CVE-2020-0543 — Special Register Buffer Data Sampling (SRBDS, CROSSTalk)
Bestimmte spezielle CPU-Anweisungen (RDRAND, RDSEED, EGETKEY) lesen Daten über einen gemeinsam genutzten Staging-Puffer, der über spekulative Ausführung für alle Kerne zugänglich ist. Ein Angreifer, der auf einem beliebigen Kern Code ausführt, kann die Ausgabe dieser Anweisungen eines Opfers auf einem anderen Kern beobachten, einschließlich des Extraktions von kryptografischen Schlüsseln aus SGX-Enklaven (ein vollständiger ECDSA-Schlüssel wurde demonstriert). Dies ist bemerkenswert als einer der ersten Cross-Core-Spekulationsausführungsangriffe. Die Abschwächung erfordert ein Mikrocode-Update, das den Zugriff auf den Staging-Puffer serialisiert, plus ein Kernel-Update zur Verwaltung der Abschwächung. Die Leistungsauswirkung ist gering, hauptsächlich betroffen sind Workloads, die stark RDRAND/RDSEED nutzen.
CVE-2022-21123, CVE-2022-21125, CVE-2022-21166 — Processor MMIO Stale Data (SBDR, SBDS, DRPW)
Eine Klasse von MMIO (Memory-Mapped I/O) Schwachstellen, bei denen veraltete Daten aus internen CPU-Fill-Puffern durch Seitenkanalangriffe während MMIO-Operationen abgeleitet werden können. Drei Unter-Schwachstellen werden abgedeckt: Shared Buffers Data Read (SBDR, CVE-2022-21123), Shared Buffers Data Sampling (SBDS, CVE-2022-21125) und Device Register Partial Write (DRPW, CVE-2022-21166). Betroffene Intel-CPUs umfassen Haswell bis Rocket Lake Server- und Client-Prozessoren sowie Tremont-Atom-Kerne. Die Abschwächung erfordert ein Mikrocode-Update, das die FB_CLEAR-Fähigkeit bereitstellt (VERW-Anweisung löscht Fill-Puffer) plus ein Kernel-Update (Linux 5.19+), das VERW bei Kernel/Benutzer-Übergängen und VM-Ein-/Austritt aufruft. Wenn SMT aktiviert ist, können Geschwister-Threads die Schwachstelle trotz aktiver Abschwächungen weiterhin ausnutzen. Die Leistungsauswirkung ist gering, da der VERW-Mechanismus mit der bestehenden MDS-Abschwächung geteilt wird.
CVE-2022-29900 — Arbitrary Speculative Code Execution with Return Instructions (Retbleed AMD)
Auf AMD-Prozessoren der Familien 0x15 bis 0x17 (Bulldozer bis Zen 2) und Hygon-Familie 0x18 kann ein Angreifer Rückkehranweisungen ausnutzen, um die spekulative Ausführung umzuleiten und Kernel-Speicher preiszugeben, wobei Retpoline-Abschwächungen umgangen werden, die gegen Spectre V2 wirksam waren. Im Gegensatz zu Spectre V2, das auf indirekte Sprünge und Aufrufe abzielt, zielt Retbleed speziell auf Rückkehranweisungen ab, die zuvor als sicher galten. Die Abschwächung erfordert ein Kernel-Update, das entweder den untrained return thunk (sicheres RET) oder den IBPB-on-entry-Mechanismus bereitstellt, plus ein Mikrocode-Update, das IBPB-Unterstützung auf Zen 1/2 bereitstellt. Auf Zen 1/2 sollte SMT für vollständigen Schutz bei Verwendung der IBPB-basierten Abschwächung deaktiviert werden. Die Leistungsauswirkung ist mittel.
CVE-2022-29901 — Arbitrary Speculative Code Execution with Return Instructions (Retbleed Intel, RSBA)
Auf Intel Skylake bis Rocket Lake Prozessoren mit RSB Alternate Behavior (RSBA) können Rückkehranweisungen spekulativ über den Branch Target Buffer umgeleitet werden, wenn der Return Stack Buffer unterläuft, und dabei Retpoline-Abschwächungen umgehen. Die Abschwächung erfordert entweder Enhanced IBRS (eIBRS, über Mikrocode-Update) oder einen Kernel, der mit IBRS-on-entry-Unterstützung kompiliert wurde (Linux 5.19+). Call Depth Tracking (Stuffing) ist eine alternative Abschwächung, die ab Linux 6.2 verfügbar ist. Einfaches Retpoline mildert diese Schwachstelle auf RSBA-fähigen CPUs NICHT. Die Leistungsauswirkung ist mittel bis hoch.
**CVE-2022-40982 — Gather Data Sampling (GDS, Downfall)**Die AVX-GATHER-Instruktionen können Daten aus zuvor verwendeten Vektorregistern über Berechtigungsgrenzen hinweg durch den gemeinsamen Gather-Datenpuffer preisgeben. Dies betrifft jede Software, die AVX2 oder AVX-512 auf anfälligen Intel-Prozessoren verwendet. Die Abhilfe erfolgt durch ein Mikrocode-Update, das den Gather-Puffer löscht, oder alternativ durch die vollständige Deaktivierung der AVX-Funktion. Die Leistungsbeeinträchtigung ist für die meisten Arbeitslasten vernachlässigbar, kann jedoch für AVX-intensive Anwendungen wie HPC und KI-Inferenz erheblich sein (bis zu 50 %).
CVE-2023-20569 — Rückkehradressensicherheit (Inception, SRSO)
Auf AMD-Prozessoren der Zen 1 bis Zen 4 kann ein Angreifer den Rückkehradressen-Prädiktor manipulieren, um die spekulative Ausführung bei Rückkehrinstruktionen umzuleiten und Kernel-Speicher preiszugeben. Die Abhilfe erfordert sowohl ein Kernel-Update (das SRSO-sichere Rückkehrsequenzen oder IBPB-bei-Eintritt bereitstellt) als auch ein Mikrocode-Update (das SBPB auf Zen 3/4 oder IBPB-Unterstützung auf Zen 1/2 bereitstellt – was zusätzlich die Deaktivierung von SMT erfordert). Die Leistungsbeeinträchtigung reicht von gering bis erheblich, abhängig von der gewählten Abhilfe und CPU-Generation.
CVE-2023-20588 — AMD-Division-durch-Null spekulativer Datenleck (DIV0)
Auf AMD-Prozessoren der Zen 1 kann eine #DE-Ausnahme (Division durch Null) veraltete Quotientendaten aus einer vorherigen Division in der Dividiereinheit hinterlassen, die durch eine nachfolgende Division über spekulative Seitenkanäle beobachtet werden können. Dies kann Daten über jede Berechtigungsgrenze hinweg preisgeben, einschließlich zwischen SMT-Geschwisterthreads, die denselben physischen Kern teilen. Die Abhilfe erfordert ein Kernel-Update (Linux 6.5+), das eine Dummy-Division (amd_clear_divider()) bei jedem Wechsel in den Benutzermodus und vor VMRUN einfügt, um zu verhindern, dass veraltete Daten bestehen bleiben. Es ist kein Mikrocode-Update erforderlich. Die Deaktivierung von SMT bietet zusätzlichen Schutz, da die Kernel-Abhilfe keine Cross-SMT-Thread-Lecks abdeckt. Die Leistungsbeeinträchtigung ist vernachlässigbar.
CVE-2023-20593 — Prozessübergreifender Informationsleck (Zenbleed)
Ein Fehler in AMD-Prozessoren der Zen 2 führt dazu, dass die VZEROUPPER-Instruktion Registerdateien während der spekulativen Ausführung falsch nullt, sodass veraltete Daten anderer Prozesse in Vektorregistern beobachtbar bleiben. Dies kann Daten über jede Berechtigungsgrenze hinweg preisgeben, einschließlich vom Kernel und anderen Prozessen, mit Raten von bis zu 30 KB/s pro Kern. Die Abhilfe ist entweder durch ein Mikrocode-Update, das den Fehler behebt, oder durch eine Kernel-Workaround verfügbar, der das FP_BACKUP_FIX-Bit (Bit 9) im DE_CFG-MSR setzt und die fehlerhafte Optimierung deaktiviert. Jeder Ansatz allein ist ausreichend. Die Leistungsbeeinträchtigung ist vernachlässigbar.
CVE-2023-23583 — Redundantes Präfix-Problem (Reptar)
Ein Fehler in Intel-Prozessoren führt zu unerwartetem Verhalten bei der Ausführung von Instruktionen mit spezifischen redundanten REX-Präfixen. Abhängig von den Umständen kann dies zu einem Systemabsturz (MCE), unvorhersehbarem Verhalten oder potenziell einer Privilegienausweitung führen. Jede Software, die auf einer betroffenen CPU ausgeführt wird, kann den Fehler auslösen. Die Abhilfe erfordert ein Mikrocode-Update. Die Leistungsbeeinträchtigung ist gering.
CVE-2023-28746 — Registerdatei-Datenabtastung (RFDS)
Auf bestimmten Intel Atom- und Hybridprozessoren (Goldmont, Goldmont Plus, Tremont, Gracemont und den Atom-Kernen von Alder Lake und Raptor Lake) kann die Registerdatei veraltete Daten aus früheren Operationen behalten, die über spekulative Ausführung zugänglich sind, sodass ein Angreifer Daten über Berechtigungsgrenzen hinweg ableiten kann. Die Abhilfe erfordert sowohl ein Mikrocode-Update (das die RFDS_CLEAR-Fähigkeit bereitstellt) als auch ein Kernel-Update (CONFIG_MITIGATION_RFDS, Linux 6.9+), das die VERW-Instruktion verwendet, um die Registerdatei bei Privilegienübergängen zu löschen. CPUs mit dem RFDS_NO-Fähigkeitsbit sind nicht betroffen. Die Leistungsbeeinträchtigung ist gering.
CVE-2024-28956 — Indirekte Zielauswahl (ITS)
Auf bestimmten Intel-Prozessoren (Skylake-X Stepping 6+, Kaby Lake, Comet Lake, Ice Lake, Tiger Lake, Rocket Lake) kann ein Angreifer den indirekten Sprung-Prädiktor trainieren, um spekulativ ein gezieltes Gadget im Kernel auszuführen und dabei die eIBRS-Schutzmechanismen zu umgehen. Der Branch Target Buffer (BTB) verwendet nur teilweise Adressbits, um indirekte Sprungziele zu indizieren, sodass Benutzercode die spekulative Ausführung im Kernel-Raum beeinflussen kann. Einige betroffene CPUs (Ice Lake, Tiger Lake, Rocket Lake) sind nur für native Benutzer-zu-Kernel-Angriffe anfällig, nicht für Gast-zu-Host (VMX)-Angriffe. Die Abhilfe erfordert sowohl ein Mikrocode-Update (IPU 2025.1 / microcode-20250512+, das IBPB repariert, um indirekte Sprungvorhersagen vollständig zu leeren) als auch ein Kernel-Update (CONFIG_MITIGATION_ITS, Linux 6.15+), das Branch/Return-Thunks ausrichtet oder RSB-Stuffing verwendet. Die Leistungsbeeinträchtigung ist gering.
CVE-2024-36350 — Transienter Scheduler-Angriff, Store Queue (TSA-SQ)
Auf AMD-Prozessoren der Zen 3 und Zen 4 kann der transiente Scheduler der CPU während bestimmter Zeitfenster spekulativ veraltete Daten aus der Store-Warteschlange abrufen, sodass ein Angreifer Daten aus früheren Store-Operationen über Berechtigungsgrenzen hinweg ableiten kann. Der Angriff kann auch Daten zwischen SMT-Geschwisterthreads preisgeben. Die Abhilfe erfordert sowohl ein Mikrocode-Update (das die VERW_CLEAR-Fähigkeit bereitstellt) als auch ein Kernel-Update (CONFIG_MITIGATION_TSA, Linux 6.16+), das die VERW-Instruktion verwendet, um CPU-Puffer bei Benutzer/Kernel-Übergängen und vor VMRUN zu löschen. Der Kernel löscht auch Puffer im Leerlauf, wenn SMT aktiv ist. Die Leistungsbeeinträchtigung ist gering bis mittel.
CVE-2024-36357 — Transienter Scheduler-Angriff, L1 (TSA-L1)
Auf AMD-Prozessoren der Zen 3 und Zen 4 kann der transiente Scheduler der CPU während bestimmter Zeitfenster spekulativ veraltete Daten aus dem L1-Datencache abrufen, sodass ein Angreifer Daten im L1D-Cache über Berechtigungsgrenzen hinweg ableiten kann. Die Abhilfe erfordert dieselben Mikrocode- und Kernel-Updates wie TSA-SQ: ein Mikrocode-Update, das VERW_CLEAR bereitstellt, und ein Kernel-Update (CONFIG_MITIGATION_TSA, Linux 6.16+), das CPU-Puffer über VERW bei Privilegienübergängen löscht. Die Leistungsbeeinträchtigung ist gering bis mittel.
CVE-2025-40300 — VM-Exit-Veraltete Sprungvorhersage (VMScape)
Nachdem ein Gast-VM zum Host verlassen wurde, können veraltete Sprungvorhersagen aus dem Gast die spekulative Ausführung auf der Hostseite beeinflussen, bevor der Kernel in den Benutzermodus zurückkehrt, sodass ein lokaler Angreifer Host-Kernel-Speicher preisgeben kann. Dies betrifft Intel-Prozessoren von Sandy Bridge bis Arrow Lake/Lunar Lake, AMD-Prozessoren der Zen 1 bis Zen 5-Familien und Hygon-Familie 0x18. Nur Systeme, die einen Hypervisor mit nicht vertrauenswürdigen Gästen ausführen, sind gefährdet. Die Abhilfe erfordert ein Kernel-Update (CONFIG_MITIGATION_VMSCAPE, Linux 6.18+), das IBPB vor der Rückkehr in den Benutzermodus nach einem VM-Exit ausgibt. Es ist kein spezifisches Mikrocode-Update über die bestehende IBPB-Unterstützung hinaus erforderlich. Die Leistungsbeeinträchtigung ist gering.
CVE-2024-45332 — Branch-Privileg-Injection (BPI)
Eine Race-Condition im Sprungvorhersage-Aktualisierungsmechanismus von Intel-Prozessoren (Coffee Lake bis Raptor Lake, plus einige Server- und Atom-Teile) ermöglicht es, dass Benutzersprungvorhersagen kurzzeitig die spekulative Ausführung im Kernel-Raum beeinflussen, wodurch die eIBRS- und IBPB-Schutzmechanismen untergraben werden. Dies bedeutet, dass Systeme, die sich ausschließlich auf eIBRS für die Spectre V2-Abhilfe verlassen, ohne die Mikrocode-Korrektur möglicherweise nicht vollständig geschützt sind. Die Abhilfe erfordert ein Mikrocode-Update (intel-microcode 20250512+), das das asynchrone Sprungvorhersage-Aktualisierungstiming korrigiert, sodass eIBRS und IBPB wie ursprünglich beabsichtigt funktionieren. Es sind keine Kernel-Änderungen erforderlich. Die Leistungsbeeinträchtigung ist vernachlässigbar.
CVE-2025-54505 — AMD Zen1-Gleitkomma-Dividierer-Veraltete-Daten-Leck (FPDSS)
Auf AMD-Prozessoren der Zen1 und Zen+ (EPYC 7001, EPYC Embedded 3000, Athlon 3000 mit Radeon, Ryzen 3000 mit Radeon, Ryzen PRO 3000 mit Radeon Vega) kann der hardwaregestützte Gleitkomma-Dividierer partielle Quotientendaten aus vorherigen Operationen behalten. Unter bestimmten Umständen können diese Ergebnisse an einen anderen Thread, der denselben Dividierer teilt, preisgegeben werden, wobei jede Berechtigungsgrenze überschritten wird. Dies wurde als CVE-2025-54505 zugewiesen und von AMD am 2026-04-17 als AMD-SB-7053 veröffentlicht. Die Abhilfe erfordert ein Kernel-Update (Mainline-Commit e55d98e77561, "x86/CPU: Fix FPDSS on Zen1", Linux 7.1), das Bit 9 (ZEN1_DENORM_FIX_BIT) des MSR 0xc0011028 (MSR_AMD64_FP_CFG) auf jeder Zen1-CPU beim Booten bedingungslos setzt und so die für das Leck verantwortliche Hardwareoptimierung deaktiviert. Es ist kein Mikrocode-Update erforderlich: Das Chicken-Bit ist ab Werk im Zen1-Silicon vorhanden und unabhängig von der Mikrocode-Revision. Die Leistungsbeeinträchtigung beschränkt sich auf eine geringfügige Reduzierung des Gleitkomma-Divisionsdurchsatzes, weshalb AMD das Bit standardmäßig nicht in der Hardware aktiviert.
Einige transiente Ausführungs-CVEs werden von diesem Tool aus verschiedenen Gründen nicht abgedeckt (Duplikate, betreffen nur nicht unterstützte Hardware oder Betriebssysteme, theoretisch ohne bekannte Ausnutzung usw.). Die vollständige Liste zusammen mit dem Grund für jeden Ausschluss ist in der Datei UNSUPPORTED_CVE_LIST.md verfügbar.
Unterstützte Betriebssysteme:
Für Linux-Systeme erkennt das Tool Gegenmaßnahmen, einschließlich zurückportierter Nicht-Vanilla-Patches, unabhängig von der angegebenen Kernel-Versionsnummer und der Distribution (wie Debian, Ubuntu, CentOS, RHEL, Fedora, openSUSE, Arch, ...). Es funktioniert auch, wenn Sie Ihren eigenen Kernel kompiliert haben. Weitere Informationen hier.
Andere Betriebssysteme wie macOS, Windows, ESXi usw. werden niemals unterstützt.
Unterstützte Architekturen:
x86 (32 Bit)amd64/x86_64 (64 Bit)ARM und ARM64Was ist der Zweck dieses Tools? Warum wurde es geschrieben? Wie kann es für mich nützlich sein? Wie funktioniert es? Was kann ich davon erwarten?
Alle diese Fragen (und mehr) sind in den FAQ ausführlich beantwortet. Bitte schauen Sie dort nach!
Das Skript unterstützt vier Betriebsmodi, je nachdem, ob Sie den laufenden Kernel, ein Kernel-Image, die CPU-Hardware oder eine Kombination davon überprüfen möchten.
| Modus | Flagge | CPU-Hardware | Laufender Kernel | Kernel-Image | Anwendungsfall |
|---|---|---|---|---|---|
| Live (Standard) | (keine) | Ja | Ja | automatisch erkennen | Tägliche Überprüfung des aktuellen Systems |
| Keine-Laufzeit | --no-runtime | Ja | Nein | erforderlich | Überprüfen eines anderen Kernels gegen diese CPU (z. B. vor der Bereitstellung) |
| Keine-Hardware | --no-hw | Nein | Nein | erforderlich | Reine statische Analyse eines Kernel-Images für ein anderes System oder eine andere Architektur |
| Nur-Hardware | --hw-only | Ja | Nein | Nein | Schnelle Überprüfung der CPU-Betroffenheit ohne Kernel-Inspektion |
Im Live-Modus (Standard) überprüft das Skript sowohl die CPU als auch den laufenden Kernel.
Sie können optional --kernel, --config oder --map übergeben, um das Skript auf Dateien zu verweisen, die es nicht automatisch erkennen konnte.
Im Keine-Laufzeit-Modus liest das Skript weiterhin die lokale CPU (CPUID, MSRs, Mikrocode), überspringt jedoch alle Artefakte des laufenden Kernels (/sys, /proc, dmesg).
Verwenden Sie dies, wenn Sie ein Kernel-Image von einem anderen System haben, es aber gegen die aktuelle CPU auswerten möchten.
Im Keine-Hardware-Modus werden sowohl die CPU-Inspektion als auch die Artefakte des laufenden Kernels vollständig übersprungen. Dies ist nützlich für die plattformübergreifende Analyse, z. B. die Inspektion eines ARM-Kernel-Images auf einer x86-Workstation.
Im Nur-Hardware-Modus meldet das Skript nur CPU-Informationen und die hardwarebezogene Betroffenheit pro CVE, ohne einen Kernel zu inspizieren.
Holen Sie die neueste Version des Skripts mit curl oder wget
curl -L https://meltdown.ovh -o spectre-meltdown-checker.sh
wget https://meltdown.ovh -O spectre-meltdown-checker.sh
Überprüfen Sie das Skript. Sie führen doch nicht blind Skripte aus, die Sie aus dem Internet heruntergeladen haben, oder?
vim spectre-meltdown-checker.sh
Wenn Sie bereit sind, führen Sie das Skript als root aus
chmod +x spectre-meltdown-checker.sh
sudo ./spectre-meltdown-checker.sh
Verwendung von docker compose:```shell
docker compose build
docker compose run --rm spectre-meltdown-checker
Beachten Sie, dass `docker-compose` in älteren Versionen von Docker ein separater Befehl ist. Möglicherweise müssen Sie daher die beiden obigen Vorkommen von `docker compose` durch `docker-compose` ersetzen.
Bei direkter Verwendung von `docker build`:```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

| ✅ |
| ☠️ |
| ✅ |
| Hypervisor-Update (oder Hugepages deaktivieren) |
| CVE-2019-11091 (MDSUM, RIDL) | 💥 | 💥 (1) | 💥 | 💥 (1) | Mikrocode + Kernel-Update |
| CVE-2019-11135 (TAA, ZombieLoad V2) | 💥 | 💥 (1) | 💥 | 💥 (1) | Mikrocode + Kernel-Update |
| CVE-2020-0543 (SRBDS, CROSSTalk) | 💥 (2) | 💥 (2) | 💥 (2) | 💥 (2) | Mikrocode + Kernel-Update |
| CVE-2022-21123 (SBDR, MMIO Stale Data) | 💥 | 💥 (1) | 💥 | 💥 (1) | Mikrocode + Kernel-Update |
| CVE-2022-21125 (SBDS, MMIO Stale Data) | 💥 | 💥 (1) | 💥 | 💥 (1) | Mikrocode + Kernel-Update |
| CVE-2022-21166 (DRPW, MMIO Stale Data) | 💥 | 💥 (1) | 💥 | 💥 (1) | Mikrocode + Kernel-Update |
| CVE-2022-29900 (Retbleed AMD) | 💥 | ✅ | 💥 | ✅ | Kernel-Update (+ Mikrocode für IBPB) |
| CVE-2022-29901 (Retbleed Intel, RSBA) | 💥 | ✅ | 💥 | ✅ | Mikrocode + Kernel-Update (eIBRS oder IBRS) |
| CVE-2022-40982 (Downfall, GDS) | 💥 | 💥 | 💥 | 💥 | Mikrocode-Update (oder AVX deaktivieren) |
| CVE-2023-20569 (Inception, SRSO) | 💥 | ✅ | 💥 | ✅ | Mikrocode + Kernel-Update |
| CVE-2023-20588 (DIV0) | 💥 | 💥 (1) | 💥 | 💥 (1) | Kernel-Update (+ SMT deaktivieren) |
| CVE-2023-20593 (Zenbleed) | 💥 | 💥 | 💥 | 💥 | Mikrocode-Update (oder Kernel-Workaround) |
| CVE-2023-23583 (Reptar) | ☠️ | ☠️ | ☠️ | ☠️ | Mikrocode-Update |
| CVE-2023-28746 (RFDS) | 💥 | ✅ | 💥 | ✅ | Mikrocode + Kernel-Update |
| CVE-2024-28956 (ITS) | 💥 | ✅ | 💥 (4) | ✅ | Mikrocode + Kernel-Update |
| CVE-2024-36350 (TSA-SQ) | 💥 | 💥 (1) | 💥 | 💥 (1) | Mikrocode + Kernel-Update |
| CVE-2024-36357 (TSA-L1) | 💥 | 💥 (1) | 💥 | 💥 (1) | Mikrocode + Kernel-Update |
| CVE-2025-40300 (VMScape) | ✅ | ✅ | 💥 | ✅ | Kernel-Update (IBPB bei VM-Exit) |
| CVE-2024-45332 (BPI) | 💥 | ✅ | 💥 | ✅ | Mikrocode-Update |
| CVE-2025-54505 (FPDSS) | 💥 | 💥 | 💥 | 💥 | Kernel-Update |