Sicherheitslücke in Firmware von AMD-Prozessoren

Aktuelle AMD-Prozessoren enthalten eine System Management Unit (SMU), deren Firmware eine Sicherheitslücke enthält. Diese ließe sich nutzen, um Software einzuschleusen.

In Pocket speichern vorlesen Druckansicht 108 Kommentare lesen
AMD Trinity: APU A10-5800

AMD-APU A10-5800 (Trinity) für Mainboards mit der Fassung FM2.

Lesezeit: 3 Min.

Auf dem 31. Chaos Communication Congress (31C3) hat der tschechische Programmierer Rudolf Marek über eine Sicherheitslücke in einer Firmware-Komponente für AMD-Prozessoren der Baureihen Trinity, Richland, Kaveri und Kabini berichtet. Eine unzureichend geschützte Code-Signatur und weitere Fehler der Firmware lassen sich theoretisch von Angreifern ausnutzen, um Software einzuschleusen. Diese würde dann von der eingebetten System Management Unit (SMU) der betroffenen Prozessoren und Accelerated Processing Units (APUs) ausgeführt.

Für welche Zwecke sich ein Angriff auf die SMU nutzen lässt, hat Marek nicht beschrieben.

Laut Rudolf Marek stellt AMD bereits fehlerbereinigte Versionen der sogenannten AGESA-Firmwarekomponenten bereit. Diese müssen nun die Hersteller von Desktop-PCs, Notebooks und Mainboards in BIOS-Updates für betroffene Systeme integrieren. Dazu gibt es derzeit noch keine Informationen. Die betroffenen CPU-Typen laufen etwa auf Boards mit den Fassungen FM2, FM2+ und AM1, sind aber auch in BGA-Versionen zum Auflöten verbreitet.

Die SMU ist bei den betroffenen Prozessoren unter anderem für die Steuerung von Stromsparfunktionen zuständig, aber auch für andere Konfigurationsaufgaben – ähnlich wie die von Intel sogenannte Management Engine (ME). Während Intel für manches MEs Firmware nutzt, die auf ARC-Controllern läuft, setzt AMD bei der SMU auf den 32-Bit-Mikrocontroller LatticeMicro32 (LM32) von Lattice Semiconductor. Die Firmware der SMU ist Teil des AGESA-Codes (AMD Generic Encapsulated Software Architecture), der wiederum im (UEFI-)BIOS-Code des Systems steckt. Der AGESA-Code dient zur Initialisierung der AMD-Prozessoren während der Startphase (des Bootens) des Systems.

Marek hat den SMU-Code aus heruntergeladenen BIOS-Updates für diverse Mainboards extrahiert. Er konnte den LM32-Code auf dem gängigen Emulator QEMU untersuchen. Dabei konnte er den geheimen Schlüssel knacken, den AMD für den SHA1-Hash in der Code-Signatur benutzt. Außerdem prüfte die SMU-Firmware Code vor der Ausführung nicht richtig, sodass Marek eigene Befehle einschleusen konnte.

Bereits Ende April 2014 hatte Rudolf Marek AMD kontaktiert, im Juli bestätigte AMD die Fehler und hat bis Ende November AGESA-Varianten mit gepatchter SMU-Firmware herausgebracht.

AGESA-Firmware-Versionen mit SMU-Patches
APU CPU-Familie AGESA-Version SMU-Version
Trinity 15h 1.1.0.7 10.14
Richland 15h 1.1.0.7 12.18
Kaveri 15h 1.1.0.7 13.52
Kabini 16h 1.1.0.2 12.21

Nur wenige Mainboard-Hersteller dokumentieren allerdings exakt, welche AGESA-Version in welchem BIOS-Update steckt. Als Beispiel sei die Download-Seite von MSI für das Mainboard A88XM GAMING genannt: Dort sind mehrere BIOS-Updates mit dem Zusatz "Updated AMD AGESA code" gekennzeichnet – bloß nicht mit welcher konkreten Version.

Heise online hat bei AMD angefragt, ob noch weitere Prozessoren betroffen sind, etwa die mit den Kabini-Typen eng verwandten Temash-Typen.

Informationen zu den betroffenen AMD-Prozessoren:

(ciw)