Spectre bezeichnet eine 2017 erstmals beschriebene Klasse von Prozessor-Schwachstellen, die die spekulative Ausführung ausnutzt – jene Optimierung, mit der moderne CPUs Befehle vorausschauend berechnen. Angreifer bringen den Prozessor dazu, spekulativ auf sensible Daten zuzugreifen, und lesen diese anschließend über einen Seitenkanal anhand von Cache-Laufzeiten aus. Die Variante Spectre v2 setzt dabei gezielt an der indirekten Sprungvorhersage an: Sie vergiftet den Vorhersagemechanismus, sodass das Opferprogramm einen indirekten Sprung falsch vorhersagt und spekulativ ein vom Angreifer kontrolliertes Gadget ausführt. Die Ergebnisse der Fehlvorhersage werden zwar verworfen, doch die veränderten Cache-Zustände verraten, worauf zugegriffen wurde.

BTR erweitert dieses Prinzip um einen bislang unbeachteten Faktor: das Zusammenspiel von selbstmodifizierendem Code und indirekter Sprungvorhersage. Laut den Forschern eröffnen JIT-Engines damit erstmals durch selbstmodifizierenden Code ausgelöste, ausnutzbare Gelegenheiten für transiente Ausführung. Vorausgesetzt wird ein Angreifer, der unprivilegierten Code in einer JIT-Engine ausführen kann und Daten aus der umgebenden Host-Umgebung auslesen will.

„Indem der Angreifer den Kontrollfluss auf einen architektonisch ungültigen Einsprungpunkt umlenkt, kann er Spectre-Härtungsmaßnahmen umgehen oder nicht ausgerichtete Instruktionen ausführen und so letztlich geheime Daten offenlegen", erläutern die Forscher. Der Angriff steht und fällt allerdings mit zwei Bedingungen: Der veraltete Eintrag im Branch Target Buffer darf nach dem Freigeben des Trainings-Chunks durch die JIT-Engine weder invalidiert noch ersetzt werden, und die Sprungvorhersage muss genau diesen überholten Eintrag für ihre Prognose heranziehen.

Anzeige

Getestet wurde BTR gegen SpiderMonkey, die JIT-Engine von Mozilla Firefox, gegen GraalVM sowie gegen den cBPF-JIT des Linux-Kernels. Alle drei erwiesen sich als angreifbar, allerdings mit, wie es in der Arbeit heißt, „deutlich unterschiedlichen Ausnutzbarkeitseigenschaften und Leckraten". Am eindrucksvollsten fiel der Nachweis beim Linux-Kernel aus: Zwei durchgängige Exploits extrahierten auf einem aktuell gepatchten Intel-System mit Standardschutz binnen Minuten den Root-Passwort-Hash.

Nach koordinierter Offenlegung wurden Gegenmaßnahmen entwickelt und in den Linux-Kernel eingepflegt; sie werden unter den Kennungen CVE-2026-64507 und CVE-2026-64508 geführt. GraalVM erschwert die Wiederverwendung freigegebener Speicherregionen, indem es die Position des JIT-Code-Caches randomisiert. Mozilla habe Gegenmaßnahmen auf Basis des Indirect Branch Predictor Barrier (IBPB) erwogen, priorisiere derzeit aber die Fertigstellung und Ausbringung der Site Isolation, so die Forscher.

Die Veröffentlichung folgt knapp zwei Monate auf die Offenlegung einer Angriffstechnik namens Interrupt Injection durch die MIT-CSAIL-Forscher Daniël Trujillo und Mengjia Yan. Auch sie umgeht Spectre-v2-Schutzmechanismen und erlaubt das Auslesen beliebigen Kernel-Speichers auf Linux-Systemen mit Intel- und AMD-Prozessoren.