Reptar-Sicherheitslücke, die Intel-Prozessoren betrifft

Tavis Ormandy, Sicherheitsforscher bei Google, hat eine neue Schwachstelle (CVE-2023-23583) in Intel-Prozessoren mit dem Codenamen Reptar identifiziert, die vor allem eine Bedrohung für Cloud-Systeme darstellt, auf denen virtuelle Maschinen verschiedener Benutzer laufen. Die Sicherheitslücke führt dazu, dass das System hängen bleibt oder abstürzt, wenn bestimmte Vorgänge auf unprivilegierten Gastsystemen ausgeführt werden. Zum Testen Ihrer Systeme wurde ein Dienstprogramm veröffentlicht, das Bedingungen für die Manifestation von Schwachstellen schafft.

Theoretisch kann die Schwachstelle genutzt werden, um Privilegien vom dritten auf den Null-Schutz-Ring (CPL0) zu eskalieren und aus isolierten Umgebungen zu entkommen, aber dieses Szenario hat sich in der Praxis aufgrund der Schwierigkeiten beim Debuggen auf mikroarchitektonischer Ebene noch nicht bestätigt. Eine interne Überprüfung bei Intel zeigte außerdem, dass die Sicherheitslücke unter bestimmten Bedingungen ausgenutzt werden kann, um Berechtigungen auszuweiten.

Nach Angaben des Forschers besteht die Schwachstelle in den Prozessorfamilien Intel Ice Lake, Rocket Lake, Tiger Lake, Raptor Lake, Alder Lake und Sapphire Rapids. Im Intel-Bericht wird erwähnt, dass das Problem ab der 10. Generation (Ice Lake) der Intel Core-Prozessoren und der dritten Generation der skalierbaren Xeon-Prozessoren sowie bei Xeon E/D/W-Prozessoren (Ice Lake, Skylake, Haswell, Broadwell) auftritt , Skylake, Sapphire Rapids, Emerald Rapids, Cascade Lake, Cooper Lake, Comet Lake, Rocket Lake) und Atom (Apollo Lake, Jasper Lake, Arizona Beach, Alder Lake, Parker Ridge, Snow Ridge, Elkhart Lake und Denverton). Die betreffende Schwachstelle wurde im gestrigen Microcode-Update 20231114 behoben.

Die Schwachstelle wird durch die Tatsache verursacht, dass unter bestimmten mikroarchitektonischen Umständen die Ausführung der „REP MOVSB“-Anweisung mit einem übermäßigen „REX“-Präfix codiert wird, was zu undefiniertem Verhalten führt. Das Problem wurde beim Testen redundanter Präfixe entdeckt, die theoretisch ignoriert werden sollten, in der Praxis jedoch zu seltsamen Effekten führten, wie z. B. dem Ignorieren unbedingter Verzweigungen und dem Unterbrechen der Zeigerspeicherung in den xsave- und Aufrufanweisungen. Weitere Analysen zeigten, dass das Hinzufügen eines redundanten Präfixes zum „REP MOVSB“-Befehl zu einer Beschädigung des Inhalts des ROB-Puffers (ReOrder Buffer) führt, der zum Bestellen von Befehlen verwendet wird.

Es wird angenommen, dass der Fehler durch eine falsche Berechnung der Größe des „MOVSB“-Befehls verursacht wird, was zu einer Verletzung der Adressierung von Befehlen führt, die nach dem MOVSB ​​​​mit einem übermäßigen Präfix und dem Offset in den ROB-Puffer geschrieben werden des Anweisungszeigers. Eine solche Desynchronisation kann sich auf die Unterbrechung von Zwischenberechnungen mit anschließender Wiederherstellung des Integralzustands beschränken. Wenn Sie jedoch mehrere Kerne oder SMT-Threads gleichzeitig zum Absturz bringen, kann der Zustand der Mikroarchitektur so stark beschädigt werden, dass es zum Absturz kommt.

Source: opennet.ru

Kommentar hinzufügen