Letzte Woche haben Betriebssystementwickler eine Sicherheitsfix für macOS, Linux und Windows freigegeben, weil eine Intel-Dokumentation falsch interpretiert wurde.
Anzeige
Ohne Dokumentation ist alles nix – aber eine missverständliche Dokumentation ist auch nicht besser. Auf diesem schlichten Nenner lässt sich der Sicherheitsvorfall bringen, der zu einem Notfall-Patch bei Betriebssystemen führte. Es geht um die Sicherheitslücke CVE-2018-8897, die sich auf die Speicherverwaltung von CPUs bezieht und eine Schwachstelle anspricht.
Eine Aussage im System Programming Guide des Intel 64 und IA-32 Architectures Software Developer's Manual (SDM) wurde von den Entwicklern diverser Betriebssytem falsch im Betriebssystemkern behandelt. Das führt dann zu einem unerwarteten Verhalten bei #DB-Ausnahmen, die durch MOV SS oder POP SS aufgeschoben werden.
Auf Intel-Systemen kann ein Angreifer unter Umständen einen Pointer des Interrupt Handlers (GSBASE) kontrollieren. Auf AMD-Systemen hat er zusätzlich Kontrolle über den Stack Pointer (SP). Dies ermöglicht eine Privilegien-Erweiterung in Windows, MacOS, einigen Xen-Konfigurationen oder FreeBSD oder einen Absturz des Linux-Kernels.
Hintergrund: Die Prozessorbefehle MOV to SS und POP SS sperren Interrupts (einschließlich NMIs), Daten-Breakpoints und Einzelschritt-Trap-Ausnahmen bis zur Befehlsgrenze nach dem nächsten Befehl. Die gesperrten Daten-Breakpoints sind diejenigen im Speicher, auf die der Befehl MOV to SS oder POP to SS selbst zugreift.
Anzeige
Wenn der Befehl nach dem Befehl MOV to SS oder POP to SS ein Befehl wie SYSCALL, SYSENTER, INT 3 usw. ist, der die Steuerung an das Betriebssystem bei CPL < 3 überträgt, wird die Debug-Ausnahme geliefert, nachdem die Übertragung an CPL < 3 abgeschlossen ist. Die OS-Kernel erwarten diese Reihenfolge der Ereignisse nicht, so dass dies zu einem unerwarteten Verhalten führt (es lassen sich Privilegien erhöhen und Informationen abgreifen). Die Sicherheitslücke CVE-2018-8897 wurde vorige Woche von den Entwicklern der betroffenen Betriebssysteme geschlossen. Das Ganze ist im Detail hier beschrieben, deutschsprachige Beiträge finden sich hier und hier.
Anzeige