“White Screen of Death“ durch schnelle Fenstertiteländerungen

Auf Windows-Terminals und Chrome-basierten Internetbrowsern wurden eine Reihe von hochgradigen DoS-(Denial-of-Service)-Expositionen festgestellt, während einige Untersuchungen zu ANSI-Escape-Zeichen auf Terminalemulatoren durchgeführt wurden.

Eviatar Gerzi, ein Sicherheitsforscher bei CyberArk, hat eine Methode gefunden, um schnelle Fenstertiteländerungen bei PuTTY zu überzeugen.

Basierend auf einer alten Empfehlung aus dem Jahr 2003 zur Codeausführung hat er mehrere potenzielle Exploit-Pfade über Änderungen an Fenstertiteln untersucht und die Schwachstelle entdeckt.

Dieser ungewöhnliche Angriff führte dazu, dass die Testmaschine im Zustand „White Screen of Death“ hingelegt wurde. In dieser atypischen Situation wird alles außer dem Mauszeiger eingefroren.

Die Textmaschine ging sofort in den WSOD-Zustand, als ein ähnlicher Angriff auf eine lokale Anwendung getestet wurde. Der Grund für dieses Ereignis ist die Überlastung des Betriebssystemkernels mit Aufrufen.

Die Textänderung der Titelleiste des angegebenen Fensters wurde über die ausgenutzte Funktion ‘SetWindowText’ durchgeführt.

Um Ihren PC aus dem WSOD-Zustand zu befreien, müssen Sie das System neu starten, da dies die einzige Lösung ist, und daher können mehrere Anwendungen nach dieser einfachen Taktik in den DoS-Zustand wechseln.

Der Forscher weist auf den Fall von MobaXterm hin und lehnt ab, dass ‘SetWindowText’ der einzig mögliche Hebel für das Auflegen ist.

In einem der Fälle habe ich das MobaXterm-Terminal getestet und war überrascht, dass es nicht die Funktion SetWindowText verwendet, um den Fenstertitel zu ändern, sondern eine Funktion namens GdipDrawString.

Das Interessante in diesem Fall ist, dass es nicht den gesamten Computer wie SetWindowText beeinflusst hat. Es betraf nur die Anwendung, die schließlich abstürzte.

Von Gerzi bestätigt, betraf das DoS-Problem die folgenden Windows-Terminals:

  • Git – verwendet MinTTY, behoben in Version 2.30.1
  • MinTTY (und Cygwin) – CVE-2021-28848 (friert den gesamten Computer ein), behoben in Version 3.4.6
  • MobaXterm – CVE-2021-28847 (friert nur App ein), behoben in Version 21.0 Vorschau 3
  • PuTTY – CVE-2021-33500 (friert den gesamten Computer ein), behoben in Version 0.75
  • XSHELL – CVE-2021-42095 (friert den gesamten Computer ein), behoben in Version 7.0.0.76
  • ZOC – CVE-2021-32198 (friert nur App ein), kein Fix

Überprüfen Sie es in Webbrowsern

Der Angriff wurde von den Forschern gegen gängige Webbrowser wie Chrome experimentiert, wobei berücksichtigt wurde, dass die SetWindowText-Funktion von fast allen GUI-Anwendungen verwendet wird.

Damit sich der Titel in einer Endlosschleife schnell ändert, entwarf er eine HTML-Datei, die den Browser zum Einfrieren brachte.

Sogar Edge, Maxthon, Torch, Opera und Vivaldi, alle Chromium-basierten Browser erlebten das gleiche Verhalten. Obwohl Firefox und Internet Explorer dafür unverwundbar waren, verhielten sich ihnen jedoch unähnlich.

Da moderne Browser auf Sandboxen basieren, hatte das Problem nicht in allen Fällen Auswirkungen auf das zugrunde liegende Betriebssystem.

Als der Browserangriff jedoch in einer virtuellen Maschine ausprobiert wurde, wurde ein Problem bezüglich der Ressourcenerschöpfung festgestellt, das zur Anzeige eines “Blue Screen of Death” in der virtualisierten Maschine führte.

Wie Anbieter reagierten

Der Forscher stellt klar, dass die oben genannten Anwendungen lediglich ein Beispiel für die betroffene Software sind, da entweder SetWindowText oder GdipDrawString von den von diesem Angriff betroffenen Apps verwendet werden könnten.

Einige Anwendungen wie Slack besitzen die Möglichkeit, eine Rate für die Aufrufe der Funktionen zu begrenzen, sodass diese Art von DoS-Angriffen für sie flexibel ist.