Die Firma AMD hat Informationen über eine neue Klasse von mikroarchitektonischen Angriffen auf ihre Prozessoren veröffentlicht — TSA (Transient Scheduler Attack). Der Angriff ermöglicht es Angreifern, die Isolationsmechanismen der CPU zu umgehen und Daten zu identifizieren, die in anderen Kontexten verarbeitet werden, z. B. Informationen aus dem Benutzerspeicher auf Kernel-Ebene oder Daten, die von einem Gastbetriebssystem in einem anderen Gastbetriebssystem verwendet werden.
Die Schwachstellen wurden im Zuge der Entwicklung eines Werkzeuges festgestellt, das von Forschern von Microsoft und der ETH Zürich zur Stresstestung der mikroarchitektonischen Isolierung zwischen verschiedenen Zugangszonen, wie dem Kernel, virtuellen Maschinen und Prozessen, erstellt wurde.
Die Angriffsmethode basiert auf der zeitlichen Abhängigkeit der Ausführung bestimmter Anweisungen vom Zustand mikroarchitektonischer Strukturen. Wenn der Prozessor auf ein schnelles Ende einer Leseoperation aus dem Speicher (zum Beispiel in der Annahme, dass die Daten im L1-Cache vorhanden sind) wartet, aber die Daten nicht erfolgreich abgerufen werden können, tritt ein Zustand "falscher Abschluss" der Anweisung (false completion) ein. In diesem Zustand kann der Prozessor, bevor er den Zustand feststellt, bereits spekulative Ausführungen anderer Operationen planen, die vom Ergebnis der Leseoperation abhängen.
Da der Ladevorgang nicht abgeschlossen ist, werden die damit verbundenen Daten vom Prozessor als ungültig angesehen und der Ladevorgang wird später erneut wiederholt. Abhängige Operationen werden ebenfalls erneut ausgeführt, nachdem die korrekten Daten bereitstehen. Dabei erfolgt kein Pipeline-Flush nach der Ausführung der Anweisung, für die der Zustand "falscher Abschluss" festgestellt wurde, und inkorrekte Daten können in abhängige Operationen umgeleitet werden.
Die Ausführung solcher Operationen verändert nicht den Zustand des Caches und TLB (Translation Lookaside Buffer), d. h. die Daten können nicht mit traditionellen Methoden zur Bestimmung des Cache-Zustands wiederhergestellt werden. Diese Daten beeinflussen jedoch die Ausführungszeit anderer Anweisungen. Die Analyse der Ausführungszeit kann als Quelle für Informationslecks aus mikroarchitektonischen Strukturen dienen, die nach der spekulativen Ausführung anderer Operationen verbleiben.
In Abhängigkeit von der Quelle der extrahierten Restdaten wurden zwei Schwachstellen identifiziert:
- CVE-2024-36350 (TSA-SQ — TSA Store Queue) — ein Bufferüberlauf bei Schreiboperationen (Store Queue), der es ermöglicht, das Ergebnis von Speicherbeschreibungen zu bestimmen.
- CVE-2024-36357 (TSA-L1 — TSA L1-Daten-Cache) — ein Leck über den L1D-Cache.
Die Schwachstellen treten bei der AMD-Prozessorfamilie (Fam19h) auf, die auf den Mikroarchitekturen Zen 3 und Zen 4 basiert. Das Problem tritt beispielsweise bei den CPU-Serien AMD Ryzen 5000/6000/7000/8000, AMD EPYC Milan/Milan-X/Genoa/Genoa-X/Bergamo/Siena, AMD Instinct MI300A, AMD Ryzen Threadripper PRO 7000 WX, AMD EPYC Embedded 7003/8004/9004/97X4 und AMD Ryzen Embedded 5000/7000/V3000 auf.
Die notwendigen Änderungen zur Behebung der Sicherheitsanfälligkeit sind in das Dezember-Mikrocode-Update und die PI-Firmware (Platform Initialization) integriert, die an OEM-Hersteller übermittelt wurden. Die Patches zum Schutz gegen die Schwachstelle wurden zur Integration in den Linux-Kernel bereitgestellt (für die Deaktivierung des den Schutz negativ beeinflussenden Modus ist die Kernel-Befehlszeilenoption „tsa=off“ vorgesehen). Die Korrektur wurde auch in den Hypervisor Xen integriert. Um die Schwachstelle zu blockieren, sind sowohl ein Mikrocode-Update als auch die Aktivierung des Schutzmodus auf Kernel- oder Hypervisorebene erforderlich.
Quelle: opennet.ru
