Sicherheitsforscher haben eine weitere Schwachstelle in zahlreichen älteren AMD- und Intel-Mikroprozessoren entdeckt, die aktuelle Schutzmaßnahmen umgehen und zu Spectre-basierten Angriffen mit spekulativer Ausführung führen kann.

Die von den ETH-Forschern Johannes Wikner und Kaveh Razavi als „Retbleed“ bezeichneten Schwachstellen werden unter den Bezeichnungen CVE-2022-29900 (AMD) und CVE-2022-29901 (Intel) geführt, wobei die Chip-Hersteller im Rahmen eines koordinierten Offenlegungsprozesses Software-Abschwächungen veröffentlichen.

Retbleed ist außerdem der jüngste Neuzugang zu einer Klasse von Spectre-Angriffen, die als Spectre-BTI (CVE-2017-5715 oder Spectre-V2) bekannt sind. Diese nutzen die Nebeneffekte einer Optimierungstechnik namens spekulative Ausführung mit Hilfe eines Timing-Seitenkanals aus, um ein Programm dazu zu bringen, auf beliebige Stellen in seinem Speicher zuzugreifen und private Informationen preiszugeben.

Bei der spekulativen Ausführung wird versucht, die Befehlspipeline eines Programms zu füllen, indem vorhergesagt wird, welcher Befehl als Nächstes ausgeführt wird, um einen Leistungsschub zu erzielen, während gleichzeitig die Ergebnisse der Ausführung rückgängig gemacht werden, falls sich die Vermutung als falsch herausstellt.

Angriffe wie Spectre machen sich die Tatsache zunutze, dass diese fehlerhaft ausgeführten Befehle – ein Ergebnis der falschen Vorhersage – zwangsläufig Spuren der Ausführung im Cache hinterlassen, was zu einem Szenario führt, in dem ein bösartiges Programm den Prozessor dazu bringen kann, falsche Codepfade auszuführen und geheime Daten des Opfers abzuleiten.

Anders ausgedrückt: Spectre ist ein transienter Ausführungsangriff, der sich auf Hardware-Designfehler stützt, um zu „beeinflussen“, welche Befehlssequenzen spekulativ ausgeführt werden und Verschlüsselungsschlüssel oder Passwörter aus dem Speicheradressraum des Opfers ausspähen.

Dies wiederum wird durch mikroarchitektonische Seitenkanäle wie Flush+Reload erreicht, die die Zeit messen, die benötigt wird, um Speicher aus dem Cache zu lesen, der mit dem Opfer gemeinsam genutzt wird, aber nicht bevor ein Teil des gemeinsamen Speichers geleert wurde.

Während Schutzmaßnahmen wie Retpoline (auch bekannt als „Return Trampolin“) entwickelt wurden, um Branch Target Injection (BTI) zu verhindern, wurde Retbleed entwickelt, um diese Gegenmaßnahme zu umgehen und spekulative Codeausführung zu erreichen.

„Retpolines funktionieren, indem sie indirekte Sprünge [Verzweigungen, bei denen das Verzweigungsziel zur Laufzeit bestimmt wird] und Aufrufe durch Rücksprünge ersetzen“, erklären die Forscher.

„Retbleed zielt darauf ab, eine Return-Anweisung im Kernel zu kapern, um eine beliebige spekulative Codeausführung im Kernelkontext zu erreichen. Wenn der Angreifer genügend Kontrolle über die Register und/oder den Speicher beim Rückgabebefehl des Opfers hat, kann er beliebige Kernel-Daten ausspähen.

Die Kernidee besteht darin, Rücksprunganweisungen als Angriffsvektor für die spekulative Ausführung zu behandeln und zu erzwingen, dass Rücksprünge wie indirekte Verzweigungen vorhergesagt werden, wodurch die Schutzmaßnahmen von Retpoline effektiv ausgehebelt werden.

Als neue Verteidigungslinie hat AMD das so genannte Jmp2Ret eingeführt, während Intel die Verwendung von Enhanced Indirect Branch Restricted Speculation (eIBRS) empfiehlt, um die potenzielle Schwachstelle zu beheben, selbst wenn die Retpoline-Schutzmaßnahmen bereits greifen.

„Das Windows-Betriebssystem verwendet standardmäßig IBRS, so dass kein Update erforderlich ist“, so Intel in einem Advisory und weist darauf hin, dass das Unternehmen mit der Linux-Community zusammengearbeitet hat, um Software-Updates für die Schwachstelle bereitzustellen.