Ein interessanter Bug im Google Chrome und Opera Browser macht gerade die Runde, die den Browsertab oder den kompletten Browser abstürzen lässt. Diesen Bug kann man ganz leicht erreichen – mit einem Link.
Aus der Kategorie „Fun“. Der Google Chrome Browser kann bis zur Version 45.0.2454.93 zum Absturz gebracht werden, wenn man eine bestimmte URL aufruft oder einen Link mit dieser URL klickt. Dabei wird dem Link kein Javascript oder ähnliches mitgeliefert, sondern es handelt sich wirklich nur um einen ganz normalen Link.
So einfach? So merkwürdig. 🙂
Neben dem Google Chrome ist auch der Opera Browser bis zur Version 31.0 von dem Bug betroffen.
Inhaltsverzeichnis
Probieren wir es aus: Google Chrome und Opera mit diesem Link zum Absturz bringen
Was erzeugt den Absturz?
Nun, zunächst ist es völlig egal, um welche Domain es sich handelt. Man kann genauso gut jede andere Domain vorne dran stellen, wie etwa
- oder
- oder
- oder
Entscheidend sind die Zeichen %%30%30, die nach der Domain kommen.
Es gibt aber zwei entscheidende Unterschiede:
- Wird die URL über einen Link oder direkt in der Adresszeile in Google Chrome aufgerufen, stürzt der komplette Browser mit allen Tabs ab.
- Fährt man mit der Maus über einen normalen Link, der in der Linkadresse eben diese Zeichen nach einer Domain beinhaltet, stürzt nur der Browser-Tab ab.
Der Google Chrome Browser als Smartphone-App hat übrigens den gleichen Bug. Dort stürzt der Browser ebenfalls ab, wenn man schon mit dem Finger über den Link fährt. Der Link wird dabei nicht einmal geöffnet. Es ähnelt auf dem Smartphones also dem Mouseover auf dem Desktop-PC.
Um zu verstehen wie der Absturz funktioniert muss man wissen, wie Computer Zeichen verarbeiten. Gute Hintergrundinformationen dazu hat → Tom Scott in einem Videobeitrag zusammengefasst (englisch):
Im Deutschen und im Kurzen heißt das ungefähr:
- In der URL werden Zeichen und Sonderzeichen umgewandelt in maschinenlesbareren Text – in Unicode und dann in Binärcode. Der Browser und der Computer kann nämlich keine Zeichen und Sonderzeichen wirklich lesen. Beide können aber Zeichenfolgen, die bestimmte Zeichen oder Sonderzeichen darstellen, in beide Richtungen umkonvertieren. So hat wahrscheinlich jeder schon mal eine Seite mir einer URL verlinkt, in der sich die Zeichenfolge %20 befindet, die in der dargestellten URL in der Adresszeile tatsächlich ein Leerzeichen abbilden.
- Das Prozentzeichen gibt also an, dass jetzt eine Zahl folgt, die ein bestimmtes Zeichen oder Sonderzeichen darstellen soll.
Was passiert bei diesem Chrome-crashenden Link also genau?
Wir haben folgende Stuktur am Ende der URL: https://nextlevelseo.de/%%30%30
- %30 in Unicode bilden das Zeichen „0“ – also die Zahl „Null“ ab (englisch „Zero“). Damit wird die URL von Google Chrome in diese URL umkonvertiert:
- https://nextlevelseo.de/%00
- Doch Google Chrome konvertiert die URL in der nächsten Funktion erneut.
- %00 ist in Unicode das Symbol für [null]. Somit wird die URL weiter umkonvertiert in:
- https://nextlevelseo.de/[null]
- [null] ist in dem Fall nicht die Zahl 0 (ist nicht englisch „Zero“), sondern bedeutet in Computersprache, dass hier der String (Codeabschnitt) geschlossen wird. [null] ist [null], nicht 0.
Nur bei den Folgefunktionen checkt Google Chrome, dass hier etwas nicht stimmt. Und crasht entweder den Browsertab oder eben das komplette Browserfenster, je nach Eingabe für Chrome.
Chrome-Absturz-Link ist Google bekannt und wird gefixt
Google ist der Fehler bereits unter dem Issue 533361 bekannt. Sollte dein Chrome Browser beim Aufrufen des Links also nicht mehr abstürzen, sondern vermutlich nur einen 404-Fehler erzeugen (Seite nicht gefunden), dann wurde der Bug mittlerweile gefixt.
Bis dahin könnt ihr mit dem Link aber noch etwas Schabernack treiben. Auf Facebook kann man einen solchen Link ganz einfach hinterlegen – und der wird auch korrekt verlinkt. Nur, dass er den Facebook-Tab zum Absturz bringen wird. Viel Spaß dann damit. 😉