CrashSafari lässt iOS und OS X durch Aufruf eines Links mit Safari abschmieren
Eine interessante Schwachstelle gibt es aktuell im Safari Browser unter OS X und iOS. Der Aufruf eines Links genügt, um Safari oder das ganze System zum Absturz zu bringen. Hervorgerufen wird der Crash durch die HTML5 History API. Wird diese häufig genug aufgerufen, ist der Browser überfordert. Dafür genügt ein HTML-Header und ein Stück JavaScript, schon kann man diese Überforderung hervorrufen. Im Fall von iOS kam es bei mir zu einem Respring des Systems (kein Reboot, Touch ID-Code musste nicht erneut eingegeben werden), unter OS X schien erst nur Safari zu hängen, letztendlich wurde aber das ganze System innerhalb kürzester Zeit unbrauchbar langsam, sodass auch hier nur noch ein Reboot half.
Ihr wollt das Ganze selbst ausprobieren? Kein Problem, ruft einfach crashsafari.com mit einem iOS- oder OS X-Gerät auf und schon seht ihr die Action live. Gefährlich ist der Aufruf der Seite nicht, sie überfordert lediglich den Browser. Der „Trick“ funktioniert auch beim Klick auf Links aus Apps heraus, bringt dann – je nachdem, mit was der Link geöffnet wurde – die jeweilige App, Safari oder das ganze System zum Absturz. Ihr könnt Euch vorstellen, dass entsprechend viele Troll-Links in den einschlägigen sozialen Netzwerken unterwegs sind…
Der Bug ermöglicht laut 9to5Mac keine Angriffe auf das System, sodass es sich hier zwar um ein Ärgernis, aber keine große Gefahr handelt. Man kann dennoch davon ausgehen, dass Apple das Problem angehen wird und irgendwann mit einem Update beseitigt. Die nächsten Tage sollte man sich gut überlegen, ob man jede Url eines Link-Shorteners anklickt, es wird sicher vermehrt mit „witzigen“ Social Media-Nutzern zu rechnen sein.
Update Carsten: Betrifft laut Aussagen einiger Leser auch Chrome mit Windows und auch Android.
@Joran
Dynamische HTML-Seiten (aka Web Apps) laden nicht nicht nach jeder Aktion die ganze Seite neu sondern laden Bestandteile der Seite nach oder ersetzen die. Beispiel: du hast ne Email abgeschickt und im Zentrum der Seite wird jetzt eine Versandbestätigung angezeigt. Mit der History-API kann die Web App einen neuen Eintrag im Verlauf anlegen und die URL ändern. Jeder „State“ (Veränderung eines Zustands) hat im Idealfall eine eigene URL auf die die Web App springen kann.
Dabei ist es häufig der Fall daß die Web App noch auf den Server warten muss und wieder dynamisch Inhalte ändert. Verzögerung und Versandbestätigung bei Gmail ist wieder ein gutes Beispiel.
@max
JavaScript, nicht Java!