Neuste Google Chrome Version lässt sich mit einer URL crashen

Laut Informationen von The Register wurde in der neuen Version von Google Chrome ein Softwarefehler gefunden, der das Programm bei Eingabe bestimmter URL zum Absturz bringt. Sogar das Gleiten mit dem Maus-Cursor über diese Adresse auf einer Webseite oder der Klick auf einen entsprechenden Link von einer Drittanwendung aus kann das Schließen des gesamten Browsers oder eines aktiven Tabs nach sich ziehen.

Andris Atteka, der das Problem in der vergangenen Woche entdeckte, hat darüber in seinem Blog geschrieben und einen Bug-Report ausgefüllt. „Eine Belohnung habe ich dafür leider nicht bekommen, da es sich lediglich um eine DoS-Sicherheitslücke handelt“, schreibt Atteka. „Und trotz alledem ist es wesentlich komplizierter, sichere Software zu entwickeln als darin Fehler zu finden. Danke Google.“

Interessant an diesem Bug ist, dass er einen schwerwiegenden Fehler hervorruft (SIGTRAP), und keinen gewöhnlichen Speicherzugriffsfehler, der mit Hilfe eines Pufferüberlaufs, einer Heapbeschädigung oder ähnlichen Problemen ausgelöst werden kann. Das bedeutet, dass ein gewisser Teil der ausführbaren Datei überhaupt gar nicht unter normalen Bedingungen ausgeführt werden sollte.

Die Zeichenfolge „%%300“ am Ende einer URL wird zu %00 konvertiert, da 0x30 der ASCII-Code für das Symbol „0“ ist. Daher verwandelt sich %%300 in eine Zeile, die aus dem ursprünglichen „%“, der konvertierten „0“ und der ursprünglichen „0“ besteht. Dadurch wird ein NULL-Byte am Ende der Adresszeile hinzugefügt.

Die so erhaltene URL wird an die Funktion GURLToDatabaseURL() weitergeleitet, die ReplaceComponents() aufruft. Das hat zur Folge, dass die URL erneut verarbeitet wird, und nun mit dem zusätzlichen NULL-Byte. Die Funktion stellt fest, dass die Adresse nicht korrekt ist und kennzeichnet die URL entsprechend.

Der Code-Pfad wird zur Funktion GURLToDatabaseURL() zurückgegeben, die die URL für noch gültig hält und gibt sie an die Funktion spec() weiter. Da die URL aber nicht mehr gültig ist, gibt das Programm beim Aufruf von DCHECK() eine Fehlermeldung aus, sogar in der Release-Version.

Das heißt also, dass der Browser, wenn eine solche URL auf die eine oder andere Weise aufgerufen wird, die als ungültig gekennzeichnete Adresse an eine Komponente schickt, die ausschließlich gültige Adressen erwartet.

Derzeit ist das Problem im Bug-Tracker des Chromium Projekts hinterlegt, ein Entwicklerteam arbeitet an der Beseitigung des Fehlers.

Quelle: The Register

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.