Menü

Fehler bei JavaScript-Verarbeitung führt in aktuellen Browsern zum Absturz

vorlesen Drucken Kommentare lesen 440 Beiträge

Berend-Jan Wever, Entdecker der IFRAME-Sicherheitslücke im Internet Explorer, hat auf mehreren Sicherheit-Mailinglisten einen Code-Schnipsel veröffentlicht, das den Internet Explorer unter Windows XP mit Service Pack 1 zum Absturz bringt.

<HTML>
<SCRIPT> a = new Array();
while (1) { (a = new Array(a)).sort();
} </SCRIPT>
<SCRIPT> a = new Array();
while (1) { (a = new Array(a)).sort();
} </SCRIPT>
</HTML>

Die aktuelle Version von Firefox stürzt beim Aufruf ebenfalls ab und öffnet den Quality Feedback Manager, um einen Fehlerbericht an die Entwickler zu senden, Mozilla reagiert ähnlich. Opera 7.54 beendet sich ohne weitere Fehlermeldung. Der Preview-Release von Opera 7.60-3 machte unter Windows das ganze System instabil, indem er einfach den Speicher immer weiter vollschrieb.

Offenbar begrenzen die JavaScript-Interpreter die weiteren Funktionsaufrufe nicht, wenn kein Platz auf dem Stack mehr vorhanden ist und überschreiben einfach andere Bereiche. Nur unter Windows XP mit Service Pack 2 gibt der Internet Explorer die Fehlermeldung "Stack Overflow at Line:" aus und beendet die Ausführung des Skripts -- ohne selbst abzustürzen. Eine etwas ältere Version (3.2.2 ) des Konquerors wurde bei einem Test in der heise-Security-Redaktion zwar kurzzeitig sehr langsam, bot anschließend aber sogar das Beenden des Skriptes an.

Dass sich der Fehler zum Einschleusen und Starten von Code ausnutzen lässt, ist äußerst unwahrscheinlich, da man keine Kontrolle über den Stack erhält, um beispielsweise den Inhalt von Registern oder Rücksprungadressen zu manipulieren. Wever hat die Probleme an Microsoft gemeldet, der Patch für den Internet Explorer wäre im weitesten Sinne Service Pack 2 für XP. Das Firefox-Team hat er nicht informiert, ein Eintrag in Bugzilla war ihm nach eigenen Angaben zu umständlich. Für Firefox gibt es noch kein Update. Ob Opera den Fehler in der finalen Version 7.60 beseitigt ist unklar.

Siehe dazu auch: (dab)