webkit: SVG exploit

Pitoten

Neu angemeldet
Registriert
3 Aug. 2013
Beiträge
1
Ort
www.a.com
Hallo zusammen,

das ist ein ziemlich spezielles Thema, hoffentlich kennt sich jemand aus.


Es gab im webkit eine Sicherheitslücke, die gefunden und erfolreich exploitet wurde. Die Leute, die das geschafft haben,
haben eine kleine Anleitung dazu in ihrem Blog gepostet:


Kugelfisch konnte mir sehr helfen, hat aber im Moment sehr viel Arbeit mit dem ngb und deshalb keine Zeit.

Nach dieser Anleitung hat Kugelfisch mir eine SVG file erstellt und ich hab eine HTML erstellt, die die SVG mit dem viewTarget Befehl aufruft.
Link zur HTML, die die svg aufruft:

Link zur svg file:


Zitat von Kugelfisch:
Der einfachste Weg dafür ist, die SVG (eingebunden in ein HTML-Dokument oder direkt aufgerufen) mit einem fragment identifier wie #svgView(viewTarget(foo)) aufzurufen, wobei foo die ID eines Elements unterhalb des foreignObject-Elements ist.
Die erste alert-Meldung müsste darauf hinweisen, dass es sich um ein SVGElement handelt. Die zweite wird mutmasslich in nicht allozierten Speicher lesen, also entweder eine undefinierbare Rückgabe liefern p

Ich habe den Test in verschiedenen webbrowsern durchgeführt. Bei keinem der Versuchen, kam eine Meldung. Nicht einmal die die erste meldung, die eigentlich bei allen Webbrowsern erscheinen sollte.

Meine Frage ist jetzt natürlich, wieso ist das so? Habe ich irgendwas übersehen?
 
habe mir jetzt den link zum exploit von dir nicht angeschaut

wegen den zwei Zeilen
Code:
Expand Collapse Copy
alert(document.documentElement.currentView.viewTarget);
alert(document.documentElement.currentView.viewTarget.farthestViewportElement);

kommt bei mir der Fehler:
TypeError: document.documentElement.currentView is undefined

wenn ich das durch 'alert(1);' oder so ersetzte bekomme ich eine Meldung
 
Ich habe das soeben doch noch kurz testen können und ein leicht modifiziertes Test-Dokument unter hochgeladen. In anfälligen WebKit-Versionen, welche SVG und JavaScript in SVG unterstützen - getestet in Chrome 24.0.1312.57 in einer Windows-XP-VM - führt http://foo23.fo.funpic.de/test.svg#svgView(viewTarget(foo)) zunächst zu einer alert()-Meldung eines SVGCircleElement-Objekts, danach zu einem Absturz der Layout-Engine. In nicht anfälligen WebKit-Versionen wird ein HTMLUnknownElement oder null gemeldet, in anderen Layout-Engines (z.B. Gecko) erscheint gar keine Meldung und ein Fehler tritt auf, wenn document.documentElement.currentView nicht definiert ist. Wenn man testweise http://foo23.fo.funpic.de/test.svg#svgView(viewTarget(test)) aufruft, müsste ein (echtes) SVGCircleElement gemeldet werden, sofern die viewTarget- und SVG-View-Funktionalität grundsätzlich unterstützt wird.
 
Chrome Version 28.0.1500.95 m
> #svgView(viewTarget(test)) gibt das angesprochene Object aus.
> #svgView(viewTarget(foo)) gibt null aus

Was wäre das schlechteste, was durch diesen Exploit ausgenutzt werden kann?
 
Was wäre das schlechteste, was durch diesen Exploit ausgenutzt werden kann?
Die erfolgreiche Ausnutzung führt (wie in dokumentiert) zur Ausführung von beliebigem Code - zunächst einmal in der WebKit-Sandbox, über eine weitere Schwachstelle ggf. auch mit den Rechten des angemeldeten Benutzers oder gar mit lokalen System-Rechten. Allerdings ist die Schwachstelle bereits seit längerem bekannt und in aktuellen WebKit-Versionen seit mehreren Monaten behoben, deshalb sehe ich auch kein Problem darin, die Entwicklung von Exploit-Code an dieser Stelle öffentlich zu diskutieren. Schaden wird man damit kaum mehr anrichten können.
 
Zurück
Oben