Ein kleines JavaScript-Exploit kann die macOS-Benutzeroberfläche einfrieren, sobald jemand eine schädliche Website öffnet. Der Deathray-Exploit funktioniert in Chrome, Firefox und Safari, sodass betroffenen Nutzern häufig nur ein Neustart ihres Macs bleibt.

Apple konnte das Problem nach Eingang des Forscherberichts reproduzieren. Später erklärte das Unternehmen jedoch, keine sicherheitsrelevanten Auswirkungen festgestellt zu haben. Eine Fehlerbehebung hat Apple bislang nicht angekündigt.

WebGPU-Shader löst eine Endlosschleife aus

Der Sicherheitsforscher Auberon López entdeckte den Fehler, während er sich mit WebGPU beschäftigte. Diese moderne Grafikschnittstelle ermöglicht Webanwendungen einen direkten Zugriff auf den Grafikprozessor eines Geräts, um anspruchsvolle Darstellungs- und Rechenaufgaben auszuführen.

Das Exploit besteht aus einem einzelnen GPU-Compute-Shader in einer kleinen JavaScript-Datei. Nach dem Laden gerät der Shader in eine Endlosschleife und kopiert wiederholt denselben Vektor in einen Puffer.

Gleichzeitig benötigt auch der für die Darstellung von Inhalten zuständige Shader diesen Puffer. Er kann nicht fortfahren, weil der erste Vorgang die Ressource nie freigibt. Dadurch kommt die GPU-Pipeline zum Stillstand und die grafische Benutzeroberfläche von macOS friert ein.

Schädliche Websites können die Benutzeroberfläche sperren

Ein Angreifer muss einen Nutzer lediglich dazu bringen, eine Website mit dem Skript zu öffnen. Zusätzliche Downloads oder weitere Interaktionen scheinen nicht erforderlich zu sein.

Die Auswirkungen können je nach Gerät und Versuch unterschiedlich ausfallen. In einigen Fällen lässt sich der Mauszeiger weiterhin bewegen oder der rotierende Wartecursor erscheint. Bei anderen Tests traten magentafarbene Bildfehler auf oder die gesamte Benutzeroberfläche reagierte nicht mehr.

Cybernews testete die Demonstration in Firefox auf einem MacBook und berichtete, dass sogar der Mauszeiger einfror. Nutzer können einen Neustart des Computers erzwingen. Andernfalls sollte Apples integrierter Watchdog-Prozess das Problem irgendwann erkennen und selbstständig einen Neustart einleiten.

Die automatische Zeitüberschreitung kann jedoch länger dauern, als viele Nutzer warten möchten. Zudem könnte ein Browser, der die vorherige Sitzung automatisch wiederherstellt, die schädliche Seite nach dem Neustart erneut öffnen.

Der Mac läuft im Hintergrund weiter

Obwohl die Bildschirmanzeige unbrauchbar wird, fährt das Exploit den Computer nicht vollständig herunter. López stellte fest, dass ein betroffener Mac weiterhin externe SSH-Verbindungen annahm.

Der Angriff blockiert stattdessen WindowServer, einen zentralen macOS-Prozess zur Verwaltung von Fenstern und der grafischen Benutzeroberfläche. WindowServer wartet darauf, dass die GPU-Pipeline wieder verfügbar wird. Der schädliche Shader verhindert dies jedoch.

Dieses Verhalten erklärt auch, warum macOS möglicherweise nicht lange genug reagiert, um eine gewöhnliche Kernel-Panic auszulösen. Das Betriebssystem arbeitet im Hintergrund weiter, während seine grafische Benutzeroberfläche gesperrt bleibt.

Gängige Mac-Browser bleiben betroffen

López reproduzierte den Deathray-Exploit unter macOS in Chrome, Firefox und Safari. Tests deuten darauf hin, dass derselbe Code iPhones oder Geräte mit anderen Betriebssystemen nicht einfriert. Dennoch kann er möglicherweise deren Leistung beeinträchtigen.

Windows verwendet ein Wiederherstellungssystem namens Timeout Detection and Recovery. Es kann die Grafikkarte zurücksetzen, wenn eine Aufgabe zu viel Zeit beansprucht. Der Forscher vermutet, dass macOS kein ähnlich effektives Verfahren besitzt, um sich von genau dieser GPU-Belastung zu erholen.

López nimmt außerdem an, dass das Problem mit der Architektur von Apples Prozessoren der M-Serie zusammenhängen könnte. Auf diesen Chips übernehmen ein Coprozessor und dessen Firmware die GPU-Präemption. Sie ermöglicht es dem System, eine laufende Aufgabe zu unterbrechen oder anzuhalten.

Apple reproduzierte den macOS-Fehler

Der Forscher meldete die Schwachstelle an Apple, das das Problem schnell reproduzierte. Laut López plante das Unternehmen zunächst eine Fehlerbehebung und nannte einen möglichen Zeitrahmen.

Später änderte Apple seine Einschätzung und erklärte, der Bericht zeige keine sicherheitsrelevanten Auswirkungen. Das Unternehmen soll die Entdeckung zur Prüfung möglicher Verbesserungen an ein anderes Team weitergeleitet haben.

Diese Reaktion deutet darauf hin, dass das Problem eine niedrigere Priorität als Schwachstellen mit Remotecodeausführung, Sandbox-Ausbrüchen oder Datendiebstahl erhalten könnte.

Ähnliche macOS-Schwachstelle erhielt bereits eine CVE-Nummer

Apple bestätigte zuvor eine andere Denial-of-Service-Schwachstelle im Zusammenhang mit schädlichen Webinhalten. Dieser Fehler erhielt die Kennung CVE-2023-40441 und einen mittleren Schweregrad von 6,5 von 10 Punkten.

López hält Deathray für weniger schwerwiegend als eine Remotecodeausführung oder ein Datenleck. Dennoch lässt sich das Exploit mit geringem Aufwand auslösen, da ein Angreifer lediglich jemanden zum Öffnen eines Links bewegen muss.

Der Forscher hat den Code veröffentlicht, andere jedoch zu einem verantwortungsvollen Umgang damit aufgefordert. Bis Apple einen stärkeren Schutz einführt, sollten Mac-Nutzer die Demonstration nicht ausführen und keine verdächtigen Links öffnen, die angeblich die Schwachstelle testen.


0 Kommentare zu „Deathray-Exploit kann einen Mac über eine schädliche Website einfrieren“